Added procedural shape generation