Have you ever wanted to play god?
To create a universe filled with evolving life and experiment with it?
To see [& hear] the universe from your creation’s virtual eyes and ears?
CritterGod is free and opensource!
CritterGod is a general purpose simulation that can be used for entertainment and education, as well as an engineering solution to robot and robot-ecology design problems.
Items in [brackets] are planned but not implemented.
Simulated kinematic physics and raytraced vision in customisable 3D environments
Bullet physics engine
OpenGL Shader textures & Lights 3D rendering
Gravity (zero, or directional vector), Drag (simulates air or water resistance)
Flat or Spherical World
Client/server architecture: multiple clients on a common environment server
Genomic Bioneural Evolver
Abstract genome -> phenotype mapping
Range of body parts and joints
Auto exchange, enabling much larger shared populations over multiple cores and CPU’s
Spiking Neural Networks
Linux or Windows
OpenGL with Shaders support
Decent GPU acceleration
SpaceGraph-C is an interactive simulation system for any abstract purpose, including, but not limited to:
Artificial Intelligence and Evolutionary Algorithm Simulation
The SpaceGraph rendering environment and control systems.
bullet-src/ & bullet-gl/
These are exact copies of the Bullet-2.77 physics engine 'src' and 'Demos/OpenGL' directories...
...except that the BulletMultiThreaded/GpuSoftBodySolvers directory was removed when it didn't compile as-is under Ubuntu linux.
(A more careful cross-platform facility may not require it's removal in the future.)
The purpose being that when new bullet versions are released, they can be dropped-in.
The Makefile was generated from NetBeans 6.9 and the NetBeans project files are included for immediate opening.
BodyProcess extends CellProcess
onPressed(world, normal, pressed?)
BrainProcess extends CellProcess
BrainInterface alloc(key, unsigned inputs, unsigned outputs)
addNeuron(Neuron n, vector<Neuron> inputs, vector<Neuron> outputs)
getRandomNeuron(float probabilityInput, floatProbabilityOutput, float
Neuron extends CellProcess
InputNeuron extends Neuron
OutputNeuron extends Neuron
IzhikevichNeuron extends Neuron
[ map all of CritterDrug's neural modulators to this class's activity ]
BrainInput extends CellProcess
a vector of InputNeurons
BrainOutput extends CellProcess
a vector of OutputNeurons
BrainMap(unsigned inputs, unsigned outputs) extends CellProcess
instantiates 2 inputs and 2 outputs and directly propagates signals across. used to link 2 brains
[16:36] <sseehh__> once its all ported then i can grow it to new features
[16:37] <sseehh__> including the in-world controls
[16:37] <sseehh__> for building and manipulating creatures
[16:37] <sseehh__> like tables and benches and factories
[16:37] <sseehh__> with switches and sliders
[16:37] <sseehh__> then the creatures will eventually be capable of building other creatures
[16:37] <sseehh__> pushing buttons, looking at readouts
[16:38] <sseehh__> AI engines will become useful
[16:38] <sseehh__> we can input semantic data directly into cognition engines, for instance
[16:38] <sseehh__> bypassing low-level neural stuff
[16:38] <sseehh__> but still including it
[16:38] <sseehh__> for things like vision and balancing
[16:38] <flamt> that will be a very rich world
[16:38] <flamt> comparatively
[16:38] <flamt> like greg egan
yah well thats all in alignment with this
i originaly implanted the idea in her that it would be a good investment for anyone to setup an isolation tank
for example instead of a sports stadium
imagine if a city or municipality built a building with many tanks
apparently, if you have a tank you dont need to sleep ever
you can be awake 24/7 and not get tired
u just go into the tank when u would normally sleep
and you get out and its as if u had slept, but u were awake in your mind the whole time
if thats true then a business ought to provide its employees with tank time
as a biz investment
In making the transition from critterding to critterdrug to crittergod, we are planning the following improvements:
- Refactored Source Code – it should make more sense, be more abstract and modular - allowing us to fractalize it further and add more features
- Laboratory Environment – starts up in a blank environment where you can add objects which can be critters or tools or lab equipment. critters can be interactively re-built with new parameters.
- Parametric Bodies – starting with snake, then move to spider, then humanoid models. each model will have various parameters that can be adjusted
- Adjustable Physics Parameters – including gravity and timescale controls
- Dynamic Attach and Snap - cells will be able to attach when close, and snap when pulled from eachother. so a creature will need to be concerne about its own structural integrity. if cells can be detached then another critter can rip another one apart, or chew it, or stab it.
- First-Person Critter Control – go inside the critter, see thru its eyes, and control its peripherals
- Interactive Examples of Small Brainz Networks – that show exactly how they function, and to serve as unit tests – with graphs and interactive knobs. each neuron will be visualized and inputs will be adjustable. will include neurotransmitter injection controls.
- Multicore Parallelization - various simulation processes can be paralellized, for example isolated neural networks
- Adjustable and Independent Process Frequencies – to support different concurrent frequencies of various simulation processes, ex: to have vision running at lower frequency than neural processing should produce a significant performance gain
- A Report on Profiling CritterGod - to share with you where the CPU and Memory performance bottlenecks truly are, and start optimizing them
- Particle effects – ex: like blood spray
- Visual cortex read-out – like the cat vision you’ve seen pictures from, for eye and minds-eye
- CA Rules Evolution – rewards for modifications to psychic screen corresponding to a desired set of propagation rules so critter brains can become cellular automata substrate computers as well as social survival machines if desired