1. About
1.1. Pythonic Platform for computer simulations
1.2. important for research
1.3. fun
1.4. developed solely by Ram
2. Case study
2.1. Conway's Game of Life
2.1.1. nice case of feedback loop
2.1.2. recently researches found a creature that disintegrates & creates itself somewhere else
3. Why
3.1. need
3.1.1. scientists explores the world
3.1.2. creates a model
3.1.2.1. hypothises rules
3.1.3. simulations show a world governed by the model
3.1.4. then scientists can compare the model results with the real world
3.1.5. & if it works, you can test things not possible to experiment in the real world
3.2. Turning a model into a simulation
3.2.1. is difficult
3.2.2. easy to do something q&d, but difficult to change & extend
3.3. That's why you need a framework
3.3.1. to do it faster
4. Framework
4.1. need to find what's common to all simulations
4.1.1. life
4.1.2. physics
4.1.3. stock market
4.2. Suggested abstraction
4.2.1. every simulation has
4.2.1.1. World state
4.2.1.1.1. state of things in the modelled world
4.2.1.2. Step function
4.2.1.2.1. takes a state & changes it to the next step in time
4.3. Once you have these, you can start playing the simulation
5. GUI
5.1. called
5.1.1. garlicsim_wx
5.2. completely optional
5.2.1. you can just
5.2.1.1. import garlicsim
5.2.2. you can run graphical simulation with your simpack, & you can also create a wx extension just to make it nicer
5.3. contains
5.3.1. board view
5.3.1.1. presents the world state
5.3.2. seek bar
5.3.2.1. timeline
5.3.2.2. yellow area was calculated
5.3.2.3. you can jump to points already calculated
5.3.3. tree browser
5.3.3.1. "time tree"
5.3.3.1.1. generalization of timeline
5.3.3.1.2. supports forking
5.3.3.2. usage
5.3.3.2.1. use case 1
5.3.3.2.2. use case 2
5.3.3.2.3. use case 3
5.3.3.3. how
5.3.3.3.1. either
5.3.3.4. main value of GarlicSim
5.3.4. playback controls
5.3.5. python shell
5.3.5.1. explore, extend & interact with the model
6. entities
6.1. simpack
6.1.1. simulation package
6.1.1.1. type of simulation
6.1.1.2. has the code for
6.1.1.2.1. world state
6.1.1.2.2. state function
6.2. project
6.2.1. data of a simulation
7. architecture
7.1. SimpackGrokker
7.1.1. manages the simpack
7.1.1.1. getting the state
7.1.1.2. getting the step function
7.2. CrunchingManager
7.2.1. creates a cruncher to run step functions
7.2.2. several cruncher types
7.2.2.1. there are currently
7.2.2.1.1. Thread cruncher
7.2.2.1.2. Process cruncher
7.2.2.2. would love to use
7.2.2.2.1. PiCloud
8. examples
8.1. queue
8.2. prisoner dilema
8.2.1. evolutionary using a population of players
8.2.2. 3 strategies
8.2.2.1. angel
8.2.2.2. asshole
8.2.2.3. smarty
8.2.3. you set the initial distribution of strategies among the population
8.2.3.1. evetually the assholes get almost extincted
8.2.3.2. & then the angels grow back a bit
8.2.4. very cool..
9. packages
9.1. garlicsim
9.1.1. engine
9.1.1.1. LGPL licensed
9.2. garlicsim_lib
9.2.1. collection of simpacks
9.2.1.1. LGPL licensed
9.3. garlicsim_wx
9.3.1. not yet OSS
10. getting started
10.1. easy_install
10.2. or download installer
10.3. video intro & tutorials in the web site
10.3.1. garlicsim.org