Sim Petri Dish - 1.0 release!

Three weeks to the day worth of development, and I'm ready for an initial release of Sim Petri Dish 1.0. Written in Java (ver 7), Sim Petri Dish simulates a microbe's world and the tiny organisms that live in it. The emphasis isn't on matching performance of individual organisms with reality, but with simulating every aspect configurable and watching the emergent behaviors that come out of a given set of rules of how to act and properties of the world. Sim Petri Dish can visualize the contents of the world in two dimensions (transferring through a third with an up and down button), has some useful presets to generate a randomized world that show off some of the engine's abilities, though it hardly lets you configure everything that can be configured, that would be much harder to use and very tedious to code.

Sim Petri Dish features a three dimensional world of compartments (in this viewer, a maximum of 100x100x10 or 100,000 of them) which have realistic heat and illumination modeling. In these can be put a number of light, heat, food, and nutrient sources, or they can hold an organism. Organisms can photosynthesize, chemosynthesize, move around, and signal other organisms (or various combinations of those) and go through a basic decision making tree to evaluate what action is the best to take based on their own abilities, their current health and statistics, and their surroundings. Some modeled behaviors include seeking food or light, avoiding heat or cold that can kill the organism, running from an attacker, telling same-type organisms where food is, and of course, reproducing. By setting some basic world properties, starting the simulation, and adding some organisms, you can see how various abilities and behaviors can build up a population or have it crash down at the hands of a predator organism.

 

To get started, download the executable .jar file from the first link, or download the source code and run (or modify) it yourself using any number of free software development options - I built it in eclipse If you choose to use the code in your own projects or modify it, you are free to under the GPL version 3 license, but I'd appreciate a mention in the credits!

Sim Petri Dish 1.0 executable .JAR

Sim Petri Dish 1.0 source code

 

If the messy interface seems overwhelming, try this to get a simulation started:

Select 5 from the World Depth pulldown box in the lower right of the Simulation Controls window. Then below it, select the Low preset, then press Reset World.

Start the simulation by clicking the Start Sim button in the top center, then try adding a variable light from the pulldown directly below it and clicking Add to world

Finally, click Start auto-populate to start gradually adding organisms randomly to the new world. The defaults let the simulation run up to 10 frames per second (100ms delay), but you can adjust this by entering a new number and pressing Start sim again. 0ms delay will run as fast as it can.

Playing with other settings can adjust all sorts of things and can manually spawn in objects, have heat or light come from the walls, or change the way objects drift around (if at all).

The small white or gray box around a cell on the main viewer is the cursor for the Entity Information window. You can navigate around to get more detailed information about what the object in the cell is doing - I recommend you pause the simulation using the Stop sim button so that the object you're viewing doesn't run away or get eaten while trying to read about it. You can always press Start sim to resume the normal simulation or press Simulation Step to advance a single step at a time.

 

July 30, 2015

 

  • Bassoon Overhaul

    Bassoon Overhaul

  • Sound Isolation Chamber Icon

    Acoustic Isolation Chamber

  • Sim Petri Dish

  • NYANCIcon

    Not Your Average Nixie Clock

Copyright