Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
Free text:
= Introduction = [[image:ANN_mockup1.png|thumb|Mock-up of the ANN designing gui]] [[image:ANN_mockup2.png|thumb|Mock-up of the ANN experiment gui]] ANN is an activity where children can design, build, and test artificial neural networks (ANNs) [http://en.wikipedia.org/wiki/Artificial_neural_network]. Each 'experiment' will have a particular task ranging in difficulty from switching on and off a light to controlling a paddle in a game of pong. Children will design and build an ANN that they can then test in a simulated environment. If you have any comments, please contact me at bjgraham@udel.edu = Rationale = The study of artificial neural networks (ANNs) in it's simplest form is the examination of how interconnected groups of relatively simple units can solve computational problems. ANNs provide a framework to think about and study how the brain and nervous system functions and interacts with the environment. Providing children with the tools necessary to learn about and explore ANNs will provide them with experience in problem solving, creative thinking, logic, experimentation, and introduce them to the fields of artificial intelligence and neuroscience. = Development plans = ANN will be programmed in Python using pyGtk for the gui and possibly [[OLPCGames]] for the experiments. This activity was inspired by the Bug Brain application [http://www.biologic.com.au/bugbrain/] == ANN simulation engine == The ANN library will be developed from scratch and will contain implementations of binary-thresholding units and adapting synapses. Additionally, the library will contain input and output adapters that will allow variables within the experiments to interface with the ANN units. == Sprite Engine/Experiment Library == The experiment library will most likely be based on [[OLPCGames]] to allow ANN control of on-screen sprites within the experiments. These sprites will be configured based on plain text files and image. This will provide teachers and advanced students the ability to define their own experiments. === Configuration File === The sprite configuration files will be plain text that defines several aspects of the sprite, animation, and sensor/effector details. It will contain a single or multiple sprite entries with various key-value combinations <b>bold = required</b> # Sprite Entry ## <b>Image file name </b> ## <b>Image size (w, h)</b> ## <b>Location (x,y)</b> ## State(s) (see below) ## Effector(s) (see below) ## Sensors(s) (see below) # State Entry ## <b>ID</b> ## Image file name ## Image size ## Location (x, y) ## Velocity (dx, dy) ## Duration (dt) ## Next State: (id) ## Sensor value: (value) # Effector Entry ## <b>Effector image file name</b> ## Threshold ## <b>Inactive state ID</b> ## <b>Active state ID</b> ## <b>Priority</b> # Sensor Entry ## <b>Sensor image file name</b> ## sensor : (x position, y position, x velocity, y velocity ...) ## scale = Experiment ideas = * Turn on a light whenever a switch is pulled * Turn on a light when two switches are pulled (and logic) * Turn on a light when one or more of two switches is/are pulled (or logic) * Turn on a light when only one of two switches is pulled (xor logic) = Phase 1 plans = * Develop the core ANN simulation engine * Design and build the gui for ANN creation/editing * Develop the sprite engine possibly based on [[OLPCGames]] for ANN testing * Design and construct an initial subset of experiments ranging in difficulty = Ideas for the future (or if all goes well this summer) = * Make the experiment configuration extensible so that teachers and advanced students can make their own * Allow collaborative editing of ANN and sharing of ANNs and experiments over the mesh network * Create input/output adapters for the microphone, speakers, camera, and keyboard to allow physical interaction with the ANNs [[Category:GSoC proposals]] [[Category:Software]] [[Category:Science]] [[Category:Activities]]
General Activity Info (for latest tested version)
To add another activity version that works with other builds click "add another"
Version number:
Releases tested on: 7.1.0 (650) 7.1.1 (653) 7.1.2 (656) 8.1.0 (703) 8.1.1 (708) 8.2.0 (767) 8.2.1 Candidate
Development status: 1. Planning 2. Pre-Alpha 3. Alpha 4. Beta 5. Production-stable 6. Mature
Summary::
This is a minor edit Watch this page
Cancel