Inspiration

  • Genetic algorithms/mutations
  • Procedural generation

What it does

  • Generates a unique creature with multiple limbs, body parts and goofy eyes
  • View your creature in a stylistic 3D viewer (orthographic camera written from scratch)
  • Uses a random seed to entirely procedurally generate the creature (with adjustable parameters)
  • Googly eyes that look at your mouse!

How we built it

  • Using python and numpy
  • One of us worked on the rendering/projection etc. while the other worked on the generation
  • Started with the basics of a body, added in limbs, added the ability to have limbs and bodies grow off each other, then added eyes

Challenges we ran into

  • Merge conflicts
  • Forgetting to clone things before modifying them (they were referenced)
  • Projecting 3D into the middle of a 2D screen
  • Parameters are very sensitive - hard to find good ones
  • Depth of the rendering - everything was projected to 2D, where it was rendered as 2D polygons and lines. Getting them rending in the correct order was tricky
  • Rendering objects relative to their parents
  • Creating the datastructure for the creature

Accomplishments that we're proud of

  • It generates things that look like creatures
  • Fun controls
  • Made to be easy to mutate the creature, or combine it with another one (all parameterised)
  • Refactoring the very messy code and cutting out lots of unnecessary and confusing parts

What we learned

  • Refreshed linear algebra
  • Orthogonal projection + painters method
  • Hard to make something believable from randomness

What's next for Procedural Creature Generator

  • Combine different creatures' genes together to create a new creature
  • Mutate creatures
  • Find out how to pick good parameters
  • Allow user to have control of parameters
  • Mouths, horns, etc.
  • Symmetry

Built With

Share this project:

Updates