Links


Get CritterGod at SourceForge.net. Fast, secure and Free Open Source software downloads

Contact

Join the discussion at IRC
freenode.net #critterding
or call +1.415.997.WARE
to speak to a developer.

CritterGod Datasheet

Introduction

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.

Features

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

  • Arbitrary size and wiring parameters

  • Adjustable neuroplasticity for online learning

openGL Vision

  • Retinas capable of seeing red/green/blue and alpha channels.

  • Customizable retina size

Food

  • Nutrients: Adjusts energy levels

  • [Variable shapes]

  • [Drugs: Adjusts neural parameters]

Human Interaction

  • Mouse / Keyboard environment manipulation

  • Webcam

  • [Auto-zoom]

Heads-up Display

  • Neural network visualizer

  • Statistic charts

Critter Import

  • [Interactively drawn body profile]

Critter Export

  • 3D Model

  • [To Webpage or Github, with embedded 3D model]

  • [To 3D printer (for prototype manufacturing)]

Hardware/Software Requirements

Linux or Windows

OpenGL with Shaders support

Decent GPU acceleration

SpaceGraph-C v2.0 (engine for CritterGod experiments)

SpaceGraph-C v2.0
http://github.com/automenta/spacegraphc2
SpaceGraph-C is an interactive simulation system for any abstract purpose, including, but not limited to:

  Desktop Applications

  Data Visualization

  Artificial Intelligence and Evolutionary Algorithm Simulation

  Software Development

  Social Networking

  Multimedia Production

-------------------------

Code:
	src/
		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.

-------------------------

Development Plan:

	Cell
		add(Process* p)
		remove(Process *p)
		update(dt)

	CellProcess
		update(dt)

	BodyProcess extends CellProcess
		Vector3f color
		String name
		update(dt)
		onTouched(world, normal)
		onPressed(world, normal, pressed?)
		onDragged(...)
		onDrawn(gl)
		getActionButtons()

	BrainProcess extends CellProcess
		getSize()
		BrainInterface alloc(key, unsigned inputs, unsigned outputs)
		addNeuron(Neuron n, vector<Neuron> inputs, vector<Neuron> outputs)
		getRandomNeuron(float probabilityInput, floatProbabilityOutput, float
		update(dt)
		~Brain()
			unalloc(key)?

	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

		update()

--------

[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] <flamt> :|
[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

CritterGod 3D Neural Visualization

CritterGod Preview 4

Float Tanks as a Business Investment

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 facility
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

CritterGod Snakes and Spider 1

CritterGod Parametric Spiders 1 (video)

Development Plans - Jan 2010

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