Random Path Algorithm

Quick follow up to my previous post, I found the same technique is pretty good at generating organic looking random paths. You simply start with an empty room, and keep randomly filling points until it is no longer possible to add any more without disconnecting the room. What’s left is a nicely wiggly pathway.

Continue reading

Blue Noise Particles

I’ve released a plugin generates a random arrangement of particles with a blue noise distribution. This is also known as Poisson Disk Sampling.

Shows blue noise distributed particles in comparison to other options

This distribution of particles guarantees no two particles are very near each other. It’s often considered a higher quality particle arrangement than Blender’s default uniform sampling. It’s particularly useful for organic arrangements, and randomly arranging meshes without collisions.


I’ve released a Python based string parser on GitHub. This was part of a much more ambitious project that fell through, but I extracted the good part.

Axaxaxas is a Python 3.3 implementation of an Earley Parser. Earley parsers are a robust parser that can recognize any context-free grammar, with good support for amiguous grammars. They have linear performance for a wide class of grammars, and worst case O(n^3).

The main goals of this implementation are ease of use, customization, and requiring no pre-processing step for the grammar. You may find the Marpa project better suits high performance needs.

Documentation can be found at: http://axaxaxas.readthedocs.org

Celtic Knots

I’ve created a Blender plugin generates 3d beziers curves in elaborate “celtic” style knotwork, based off of a framework mesh. Tested with Blender 2.68a. It’s available on github.

Celtic Knots are a intricate decorative design found in Celtic and other cultures mosaics and manuscripts. The knots often include elaborate variations and unusual angles that the plugin does not attempt to create, so touching up the resulting path in blender may be necessary for some designs.

Refer to the tutorial for some instructions on how to use the plugin, and the gallery for some examples of what is possible.

Tileset Roundup

Following my development of Resynth Tileset, I’ve been doing some thinking on the nature of tilesets, and the possible ways to auto tile them – that is, to paint tiles as is with a brush and letting the computer do the tile selection. Let’s review a few possible ways of doing so.

Just to be clear, I’m only interested at the moment in square, non-rotatable tiles. Rotation is another discussion, but excludes the more interesting tilesets. Adding alternative tiles is also not considered, though it is pretty easy to add in.

Continue reading

X Gems of AS3 Language Design

Ok, so AS3 has its fair share of problems. It is slow, it has next to no support for templates/generics and somewhat sparse standard library. And yet still I love using it.

Why? It has managed to pull together some of the rarer features that I think every language should have. Language designers, take note of the following.

Continue reading

Release of Box2DFlash 2.1a

I’m releasing an alpha version of Box2D Flash 2.1. It’s got a shiny new website, too. It has may features that were lacking before, but you’ll have to discover most of them for yourself.

This move is prompted mainly by the announcement of Erin that Box2D 2.1 itself is going to be delayed for more features. Also, the wiki got wiped out, so documentation is at an all time low (frankly, I’m glad the wiki’s gone. I sunk much work into it, but it was still a useless reference source).

Code is still alpha quality, which means a) bugs, b) no guarantees for changes in syntax. The big stuff is out of the way though. If you find a bug, or have a complaint, please post it to the forum as a new thread starting, or the sourceforge issue tracker. Do not post it as a comment here. A comment amongst other comments is too easily lost.Bear in mind that I will almost certainly ask for a testbed demonstrating the bug.

BTW, I’m going away for a couple of days for TIGJam:UK, so don’t expect issues to be treated immediately.

Announcement on forums