<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Planet PySoy</title>
	<link>http://planet.pysoy.org/</link>
	<language>en</language>
	<description>Planet PySoy - http://planet.pysoy.org/</description>

<item>
	<title>Jon Neal: The future is foggy..</title>
	<guid>tag:blogger.com,1999:blog-3723981155102888739.post-5598886216200205542</guid>
	<link>http://jon-neal.blogspot.com/2008/08/future-is-foggy.html</link>
	<description>After changing around some fog a whole lot to get it working, I came out with an adjustable smoke like haze, shown in the screen shot below to the right.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Along with this a Landscape class was added as a scene which uses a heightmap to create a landscape mesh. (Seen below, left) Now we can have mountains, hills, and valleys! (Still working out some problems and adding in features, but there none the less!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FPS or RPG anyone? (with fog of war!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_AHf-4E5IqWg/SJ5SDX8rV9I/AAAAAAAAAAs/GjO7-qy4Rhc/s400/fog.png&quot; align=&quot;right&quot; /&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_AHf-4E5IqWg/SJ5SIyQ6PfI/AAAAAAAAAA0/GtcDSUqnbRg/s400/landscape.png&quot; align=&quot;left&quot; /&gt;</description>
	<pubDate>Sat, 09 Aug 2008 20:46:54 +0000</pubDate>
	<dc:creator>Jon (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: bike accident</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-14198627049200436</guid>
	<link>http://arcriley.blogspot.com/2008/05/bike-accident.html</link>
	<description>I got side-swiped by a car Tuesday.  Only injuries are some scraped skin and sprained wrist (I'm either really lucky or all too experienced in surviving bike accidents), but the latter has dramatically slowed by dev pace due to having to type with only one hand.&lt;br /&gt;&lt;br /&gt;The sprain is mending well and i should be able to do light stuff (like typing) with it this weekend, provided I keep it immobile.&lt;br /&gt;&lt;br /&gt;In other news, bump mapping is working again, but our &lt;code&gt;&lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/examples/blocks.py&quot;&gt;blocks.py&lt;/a&gt;&lt;/code&gt; lacks proper normals, texcoords, and tangents.  If anyone is willing to spend an hour or two working out the calcs for these please get in touch.</description>
	<pubDate>Thu, 22 May 2008 15:30:34 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: hacking at 3am, seeing rainbows</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-5827685786329047382</guid>
	<link>http://arcriley.blogspot.com/2008/05/hacking-at-3am-seeing-rainbows.html</link>
	<description>&lt;img src=&quot;http://planet.pysoy.org/screenshots/texblocks-3am.png&quot; width=&quot;328&quot; height=&quot;271&quot; alt=&quot;screenshot&quot; align=&quot;right&quot; /&gt;&lt;br /&gt;There are some real advantages to hacking into the wee hours of the morning, this gem of a screenshot is one of the best of late.&lt;br /&gt;&lt;br /&gt;Thing is, I'm sitting here after refactoring several hundred lines of code and fixing &lt;a href=&quot;http://www.pysoy.org/changeset/1285&quot;&gt;two typos&lt;/a&gt; that was causing our normalisation cubemaps to be bugged, staring at this window, and unable to understand &lt;i&gt;why&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The rainbow effect is obviously from the &lt;a href=&quot;http://paulsprojects.net/tutorials/simplebump/simplebump.html&quot;&gt;normalisation cubemap&lt;/a&gt;, a data construct that maps tangent-space bumpmaps to object-space on the video card (without shaders).  I just can't determine at this late hour why it's showing up instead of rendering the bumpmap as it used to.&lt;br /&gt;&lt;br /&gt;I'm sure it'll make much more sense after 8 hours sleep.  In the meantime, enjoy the screenshot, or compile &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt; from subversion and run &lt;code&gt;TexBlocks.py&lt;/code&gt; yourself!</description>
	<pubDate>Tue, 20 May 2008 04:49:06 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: Mesh code refactoring</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-7131798686823370587</guid>
	<link>http://arcriley.blogspot.com/2008/05/mesh-code-refactoring.html</link>
	<description>I spent most of the day fixing, shifting, folding, documenting, and otherwise refactoring &lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/src/models/Mesh.pym&quot;&gt;soy.models.Mesh&lt;/a&gt; and it's related datatypes and atoms.  I'll likely spend most of tomorrow finishing this up.&lt;br /&gt;&lt;br /&gt;In short, the render process we used was crude, lacked some really easy features, looped through 6 different classes for each Mesh (Mesh, MaterialList, Material, Texture, FaceList, VertexList) and had data management code in these plus the two related atom classes (Face and Vertex).&lt;br /&gt;&lt;br /&gt;In short, not only was the code difficult to grok (even for me and I wrote much of it) but was slower that need be and increasingly difficult to expand.  &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;Game engines&lt;/a&gt; need both rendering speed (fps) and easy expandability, so this is a high priority ticket.&lt;br /&gt;&lt;br /&gt;The new structure moves all of the actual Mesh data into the Mesh objects themselves; MaterialList is gone (to be replaced by MaterialDict later), FaceList and VertexList will now only store a reference to their parent Mesh to draw data from.&lt;br /&gt;&lt;br /&gt;I'm going to be centralizing data management functions in Mesh as well, so the atoms can be much simpler and we can actually talk about optimizing the VBO layout.  We'll also be doing dynamic passes, based on how many textures/pass a &lt;a href=&quot;http://www.opengl.org/&quot;&gt;GL&lt;/a&gt; implementation supports, and supporting more textures targets (ie, specularity, emissive)&lt;br /&gt;&lt;br /&gt;Again, sprint via IRC this weekend complete with remote peer programming via Gobby.  Join us in &lt;b&gt;#PySoy&lt;/b&gt; on &lt;b&gt;irc.freenode.net&lt;/b&gt;</description>
	<pubDate>Sat, 17 May 2008 03:45:56 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: why can't XMPP keep their website up?</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-3787218090761997158</guid>
	<link>http://arcriley.blogspot.com/2008/05/why-cant-xmpp-keep-their-website-up.html</link>
	<description>Several times this month I've found &lt;a href=&quot;http://www.xmpp.org/&quot;&gt;www.xmpp.org/&lt;/a&gt;, the organization responsible for the Jabber protocol and it's many extensions, non-responsive.  Their site has been down for at least 7 hours tonight, the longest yet (to my knowledge).&lt;br /&gt;&lt;br /&gt;For our purposes I'll be mirroring their XEP's on &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;pysoy.org&lt;/a&gt; as soon as they're back up.  It's seriously frustrating to be working on this when the documents you need are often unavailable.&lt;br /&gt;&lt;br /&gt;If anyone knows of an existing mirror we could use, please reply to this posting.</description>
	<pubDate>Sat, 17 May 2008 01:46:46 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: some real progress toward beta-3</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-3590447742642234516</guid>
	<link>http://arcriley.blogspot.com/2008/05/some-real-progress-toward-beta-3.html</link>
	<description>With &lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/&quot;&gt;Pyrex&lt;/a&gt; 0.9.8 released yesterday, including a number of key changes we needed to move forward, we're back in action for &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt; belated Beta-3 release.&lt;br /&gt;&lt;br /&gt;The new &lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/version/Doc/Manual/sharing.html#CircularCImports&quot;&gt;forward declarations&lt;/a&gt; are a bit kludgy (&lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/include/soy.bodies.pxd#L24&quot;&gt;example&lt;/a&gt;), and I don't think it'll be very maintainable in the long term.  I think changing a class's inheritance should require editing &lt;b&gt;one&lt;/b&gt; file, not two (the .pxd) &lt;i&gt;or more&lt;/i&gt; (every .pxd that uses it).&lt;br /&gt;&lt;br /&gt;It works for now, until we can wipe out the entire &lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/include/&quot;&gt;&lt;code&gt;include/&lt;/code&gt;&lt;/a&gt; directory, and to be fair it's only so cumbersome due to &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt;'s size and how the classes are interconnected.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/version/Doc/Manual/external.html#Acquiring_and_Releasing_the_GIL&quot;&gt;nogil&lt;/a&gt; allowance for cdef methods is a massive step toward stomping out the multicore race conditions.  One of the developers testing just the fixes to &lt;code&gt;&lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/src/bodies&quot;&gt;soy.bodies&lt;/a&gt;&lt;/code&gt; noticed the examples often running longer than before, though there's a lot more cleanup to be done before this is package-wide.&lt;br /&gt;&lt;br /&gt;One of the roadblocks I hit is the nogil fix can't be used with our &lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/src/_internals/Children.pym&quot;&gt;&lt;code&gt;Children&lt;/code&gt; class&lt;/a&gt;, which stores pointers to Python objects of the same type and &lt;a href=&quot;http://www.pysoy.org/browser/trunk/pysoy/src/scenes/Scene.pym#L147&quot;&gt;uses those pointers&lt;/a&gt; (through a typecast) to access their cdef methods in a &lt;code&gt;for&lt;/code&gt; loop.&lt;br /&gt;&lt;br /&gt;While our usage is GIL-safe, the current version of Pyrex still wants to throw in an &lt;code&gt;INCREF&lt;/code&gt; just to be extra-cautious, which makes it not.  I've let Greg know about this, we'll see if it can't be fixed soon.&lt;br /&gt;&lt;br /&gt;In the meantime, I've called for an IRC sprint this weekend for the pending cleanup, refactoring, documentation, and testing that needs doing before beta-3.  Join &lt;code&gt;&lt;b&gt;#PySoy&lt;/b&gt;&lt;/code&gt; on &lt;code&gt;irc.&lt;a href=&quot;http://www.freenode.net/&quot;&gt;freenode.net&lt;/a&gt;&lt;/code&gt; if you want to pitch-in!</description>
	<pubDate>Fri, 16 May 2008 03:42:58 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: Building a better Pyrex - part 1</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-1015802921656347344</guid>
	<link>http://arcriley.blogspot.com/2008/05/building-better-pyrex-part-1.html</link>
	<description>With our recent decision to drop the &lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/&quot;&gt;Pyrex&lt;/a&gt; codebase and start from scratch, we find ourselves repeating a process from 2 years ago;&lt;br /&gt;&lt;br /&gt;When &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt; first forked off of Soya, we had a small list of things that needed to be fixed based on our negative experiences working with that project.  The API needed to be cleaned up, pydocs added, Shape needed to be mutable and implemented with vertex arrays or VBOs rather than display lists, etc.&lt;br /&gt;&lt;br /&gt;As we worked on it, that list grew longer, including rewriting large parts of the codebase, until we found ourselves at a point where starting over would be more expedient.  Of course now there's little doubt that was a good move, learning from both Soya's mistakes and our own failed early attempts we now have a pretty rocking architecture.&lt;br /&gt;&lt;br /&gt;The first and most foundational change we're making from Pyrex, as previously stated, is in the lexical scanner and parser.  Both Pyrex and &lt;a href=&quot;http://www.cython.org/&quot;&gt;Cython&lt;/a&gt; are based on &lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex&quot;&gt;Plex&lt;/a&gt;, which was Greg's answer to processing a Python-like language.  &lt;br /&gt;&lt;br /&gt;In contrast, we'll be using &lt;a href=&quot;http://www.python.org/&quot;&gt;Python&lt;/a&gt;'s own &lt;code&gt;&lt;a href=&quot;http://docs.python.org/dev/3.0/library/tokenize.html&quot;&gt;tokenize&lt;/a&gt;&lt;/code&gt; module for our lexical scanner and an &lt;a href=&quot;http://asdl.sourceforge.net/&quot;&gt;ASDL&lt;/a&gt;-based parser akin to the &lt;a href=&quot;http://www.python.org/dev/peps/pep-0339/&quot;&gt;parser used in Python 3.0&lt;/a&gt;.  We're extending &lt;a href=&quot;http://svn.python.org/projects/python/branches/py3k/Parser/Python.asdl&quot;&gt;&lt;code&gt;Python.asdl&lt;/code&gt;&lt;/a&gt; with &lt;code&gt;cdef&lt;/code&gt;, &lt;code&gt;ctypedef&lt;/code&gt;, &lt;code&gt;cimport&lt;/code&gt;, &lt;code&gt;cinclude&lt;/code&gt;, etc.&lt;br /&gt;&lt;br /&gt;This way we have less code to debug and a solid foundation to start with.  With lexing and parsing almost &quot;for free&quot; we'll be able to focus on the important bits and get the platform able to support the kind of features we need quickly.&lt;br /&gt;&lt;br /&gt;We've also reached a rough consensus on the following syntax changes from Pyrex:&lt;ul&gt;&lt;li&gt;unicode, generators, decorators, etc &lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/version/Doc/Manual/Limitations.html&quot;&gt;will be supported&lt;/a&gt;&lt;/li&gt;&lt;li&gt;all custom &lt;code&gt;for&lt;/code&gt; syntaxes dropped in favor of Python's standard&lt;/li&gt;&lt;li&gt;&lt;code&gt;&lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/version/Doc/Manual/external.html#Acquiring_and_Releasing_the_GIL&quot;&gt;with nogil:&lt;/a&gt;&lt;/code&gt; replaced with full &lt;code&gt;&lt;a href=&quot;http://docs.python.org/dev/3.0/reference/compound_stmts.html#the-with-statement&quot;&gt;with&lt;/a&gt;&lt;/code&gt; support&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/version/Doc/Manual/special_methods.html&quot;&gt;special methods&lt;/a&gt; will always have &lt;code&gt;self&lt;/code&gt; as first argument (ie, both __sub__ and __rsub__ used)&lt;/li&gt;&lt;li&gt;&lt;code&gt;cinclude&lt;/code&gt; added for direct C header parsing&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;There's more to come, which I'll post in additional installments as work progresses on this project.</description>
	<pubDate>Wed, 14 May 2008 01:46:05 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>
<item>
	<title>Arc Riley: setup-pyrex.py works with 0.9.7.2</title>
	<guid>tag:blogger.com,1999:blog-28358787.post-4451164897378968758</guid>
	<link>http://arcriley.blogspot.com/2008/05/setup-pyrexpy-works-with-0972.html</link>
	<description>&lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing&quot;&gt;Greg&lt;/a&gt; fixed the latest bug that caused &lt;a href=&quot;http://www.pysoy.org/&quot;&gt;PySoy&lt;/a&gt; to raise a dict assignment error on import with 0.9.7.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/&quot;&gt;Pyrex&lt;/a&gt; 0.9.7.2 was released a few hours ago with this fix, and I've updated &lt;code&gt;setup-pyrex.py&lt;/code&gt; to work with either 0.9.6.4 or &gt;=0.9.7.2.&lt;br /&gt;&lt;br /&gt;Beta-3 is still blocked by the multicore race condition caused by redundant incref/decref calls on Python arguments to class methods in this latest version of Pyrex.</description>
	<pubDate>Wed, 14 May 2008 00:29:55 +0000</pubDate>
	<dc:creator>Arc Riley (noreply@blogger.com)</dc:creator>
</item>

</channel>
</rss>
