The April project defines a set of C++ objects (World, Actor, Sensor, Reflex, Brain, Actuator, Event) that help simulate various environments. The world has an amount of energy that the user may use to create Actors and components while Actors may also create other Actors from their own energy. The code is structured in several layers:
1. april-core simply defines the library and the objects
2. april-gui builds on the concepts in april-core, giving a visual interpretation to the concepts
3. AprilDream is a GUI program that uses april-gui objects to display a World in evolution.