Difference between revisions of "Uroborus"

From Los Talleres de Linux
Jump to navigationJump to search
(La pagina de mundito en plone)
 
(wikificando mundito)
Line 1: Line 1:
 
Welcome to '''Ouroborus'''!
 
Welcome to '''Ouroborus'''!
  
_Important_, you can contribute this wiki in two ways:
+
'''_Important_, you can contribute this wiki in two ways:
  
- Commenting -> just scroll the page.
+
- Commenting -> just edit the page.
  
- Editing -> just "join us":/portal/join_form.
+
- Editing -> just [http://linux.ajusco.upn.mx/wiki/index.php?title=Special:UserLogin "register"]
 +
'''
  
 
We are creating a free, open source tool for teaching biology using artificial life simulations
 
We are creating a free, open source tool for teaching biology using artificial life simulations
Line 14: Line 15:
 
Python might be a controversial choice, but it can always be extended, and we feel that it is ideal for the ObjectArchitecture we are working on, besides, there is "Moore's Law.":http://www.webopedia.com/TERM/M/Moores_Law.html
 
Python might be a controversial choice, but it can always be extended, and we feel that it is ideal for the ObjectArchitecture we are working on, besides, there is "Moore's Law.":http://www.webopedia.com/TERM/M/Moores_Law.html
  
This page is for important issues concerning OuroborusProject.  
+
This page is for important issues concerning Ouroborus Project.  
 
Feel free to edit this page or comment it in order to mention your ideas.  
 
Feel free to edit this page or comment it in order to mention your ideas.  
 
Feel even freer to reorder or format this page as a HomePage.
 
Feel even freer to reorder or format this page as a HomePage.
  
Contact Information.
+
'''Contact Information.'''
  
We will hold regular meetings Monday from 18:00-19:30 at
+
We will hold regular meetings Monday from 18:00-19:30 at
 
"irc://linux.ajusco.upn.mx/mundito/":irc://linux.ajusco.upn.mx/mundito/. port 7000
 
"irc://linux.ajusco.upn.mx/mundito/":irc://linux.ajusco.upn.mx/mundito/. port 7000
  
 
This is the "plan for the next meeting":http://talleres.ajusco.upn.mx/portal/projects/mundito/meetingTopics.
 
This is the "plan for the next meeting":http://talleres.ajusco.upn.mx/portal/projects/mundito/meetingTopics.
  
Download the code.
+
'''Download the code.'''
  
You can make a svn(subversion) anonymous checkout: 'svn checkout svn://linux.ajusco.upn.mx/mundito'
+
You can make a svn(subversion) anonymous checkout: 'svn checkout svn://linux.ajusco.upn.mx/mundito'
  
Theoretical Basis.
+
'''Theoretical Basis.'''
  
The theoretical foundations of Ouroborus arise from complex systems theory;
+
The theoretical foundations of Ouroborus arise from complex systems theory;
 
complex systems are those which contain a relatively large number of elements,
 
complex systems are those which contain a relatively large number of elements,
 
not so many as to be able to perform mechanical statistics on the entire system,
 
not so many as to be able to perform mechanical statistics on the entire system,
Line 42: Line 43:
  
 
The Ouroborus simulation is based on Stephen Wolfram's ideas concerning "cellular automata":http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html, but with a higher level of abstraction.
 
The Ouroborus simulation is based on Stephen Wolfram's ideas concerning "cellular automata":http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html, but with a higher level of abstraction.
 +
 
The gameboard will be a grid-like array of celluar automata, and the gamepieces will be mobile objects with a sensitive aura or neighbourhood around them. These mobile automata (MA) will be able to interact with the CA, i.e. the gameboard, which will record the MA's properties; in other words the gamepieces will secrete substances which will diffuse over the board. The MA will also sense amd react to other MA.
 
The gameboard will be a grid-like array of celluar automata, and the gamepieces will be mobile objects with a sensitive aura or neighbourhood around them. These mobile automata (MA) will be able to interact with the CA, i.e. the gameboard, which will record the MA's properties; in other words the gamepieces will secrete substances which will diffuse over the board. The MA will also sense amd react to other MA.
 
In technical terms the board and the MA will have universal computation properties (they will be Turing machines).
 
In technical terms the board and the MA will have universal computation properties (they will be Turing machines).
Line 48: Line 50:
 
the MA will have genotype and phenotype attributes.
 
the MA will have genotype and phenotype attributes.
 
The phenotype will determine the way in which the MA's reproduce, and will also control mobility and sensitivity.
 
The phenotype will determine the way in which the MA's reproduce, and will also control mobility and sensitivity.
 +
 
The genotype is only a symbolic representation of the MA's genetic code;
 
The genotype is only a symbolic representation of the MA's genetic code;
 
using this, it will be easy to teach and model the process of evolution complete with Mendel's laws.
 
using this, it will be easy to teach and model the process of evolution complete with Mendel's laws.
Line 53: Line 56:
  
  
Architecture.
+
'''Architecture.'''
  
I recently came accross this interesting concept: "Symbiosis Ware":http://c2.com/cgi/wiki?SymbiosisWare.
+
I recently came accross this interesting concept: "Symbiosis Ware":http://c2.com/cgi/wiki?SymbiosisWare.
 
Question: are we writing SymbiosisWare?  
 
Question: are we writing SymbiosisWare?  
 
I say we are!
 
I say we are!
Line 108: Line 111:
 
Documentation.
 
Documentation.
  
Here you can place links to all kinds of relevant documentation,  
+
Here you can place links to all kinds of relevant documentation,  
 
which includes python tutorials, articles about artificial life,  
 
which includes python tutorials, articles about artificial life,  
 
pygame tutorials, manuals for mundito users and developers, etc...
 
pygame tutorials, manuals for mundito users and developers, etc...
Line 134: Line 137:
 
CAGE.
 
CAGE.
  
The "Cage homepage":http://www.alcyone.com/software/cage/index.html is the only documentation I can find for it.  
+
The "Cage homepage":http://www.alcyone.com/software/cage/index.html is the only documentation I can find for it.  
 
(This of course means that we will need to write some tutorials or HowTos for it.)
 
(This of course means that we will need to write some tutorials or HowTos for it.)
  
 
Networking.
 
Networking.
  
Docs about the "standard implementation of socket networking":http://docs.python.org/lib/module-socket.html.
+
Docs about the "standard implementation of socket networking":http://docs.python.org/lib/module-socket.html.
 
A "Socket Programming HOWTO":http://www.amk.ca/python/howto/sockets/
 
A "Socket Programming HOWTO":http://www.amk.ca/python/howto/sockets/
 
by "Gordon McMillan":http://www.hrdag.org/about/gordon_macmillan.shtml, (gmcm@hypernet.com), can be found in "A.M. Kuchling's page":http://www.amk.ca/.
 
by "Gordon McMillan":http://www.hrdag.org/about/gordon_macmillan.shtml, (gmcm@hypernet.com), can be found in "A.M. Kuchling's page":http://www.amk.ca/.
Line 149: Line 152:
 
Wiki's Sandbox
 
Wiki's Sandbox
  
If you just want to play with the wiki, visit the SandBox, this content will be mantained, but we ask you not to alter another contributions.
+
If you just want to play with the wiki, visit the SandBox, this content will be mantained, but we ask you not to alter another contributions.
  
 
Comments?
 
Comments?
  
Below is a space for comments.
+
Below is a space for comments.
 
You can also use it to experiment with this wiki,  
 
You can also use it to experiment with this wiki,  
 
to create pages not related to mundito, etc...
 
to create pages not related to mundito, etc...
Line 189: Line 192:
  
 
<b>parece  que los estuviera oyendo...</b> --2004/03/24 00:32 CST<br>
 
<b>parece  que los estuviera oyendo...</b> --2004/03/24 00:32 CST<br>
I love deadlines. I love the whooshing noise they make as they go by --Douglas Adams ([http://www.edge.org/documents/adams_index.html">Lament For Douglas])
+
I love deadlines. I love the whooshing noise they make as they go by --Douglas Adams (http://www.edge.org/documents/adams_index.html"Lament For Douglas])
  
  

Revision as of 00:38, 14 February 2010

Welcome to Ouroborus!

_Important_, you can contribute this wiki in two ways:

- Commenting -> just edit the page.

- Editing -> just "register"

We are creating a free, open source tool for teaching biology using artificial life simulations which we hope will be sufficiently complex to exhibit Interesting Behaviour. It will be written in "Python":http://www.python.org/ with "Pygame":http://www.pygame.org/]. We will create windows executables with "py2exe":http://starship.python.net/crew/theller/py2exe/index.html . Python might be a controversial choice, but it can always be extended, and we feel that it is ideal for the ObjectArchitecture we are working on, besides, there is "Moore's Law.":http://www.webopedia.com/TERM/M/Moores_Law.html

This page is for important issues concerning Ouroborus Project. Feel free to edit this page or comment it in order to mention your ideas. Feel even freer to reorder or format this page as a HomePage.

Contact Information.

We will hold regular meetings Monday from 18:00-19:30 at "irc://linux.ajusco.upn.mx/mundito/":irc://linux.ajusco.upn.mx/mundito/. port 7000

This is the "plan for the next meeting":http://talleres.ajusco.upn.mx/portal/projects/mundito/meetingTopics.

Download the code.

You can make a svn(subversion) anonymous checkout: 'svn checkout svn://linux.ajusco.upn.mx/mundito'

Theoretical Basis.

The theoretical foundations of Ouroborus arise from complex systems theory; complex systems are those which contain a relatively large number of elements, not so many as to be able to perform mechanical statistics on the entire system, and not so few that we could analyse them with differential equations. These systems cannot be broken up into their constituent parts in order to be analysed, because the dynamics of the entire system depend on the complete interaction of the parts.

As an example of a complex system you can think of the human brain: if you try to understand the behaviour of the entire system by studying the neurons only, you won't go very far at all since you will need one differential equation for each neuron and the mammalian brain has hundreds of thousands of them, making it impossible to model. On the other hand if you focus on the statistics of the system you won't find too much of interest either. So we must conclude that somewhere in between order (the mechanisistic view) and disorder (statistics) lie some interesting phenomena known as complex systems.

The Ouroborus simulation is based on Stephen Wolfram's ideas concerning "cellular automata":http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html, but with a higher level of abstraction.

The gameboard will be a grid-like array of celluar automata, and the gamepieces will be mobile objects with a sensitive aura or neighbourhood around them. These mobile automata (MA) will be able to interact with the CA, i.e. the gameboard, which will record the MA's properties; in other words the gamepieces will secrete substances which will diffuse over the board. The MA will also sense amd react to other MA. In technical terms the board and the MA will have universal computation properties (they will be Turing machines).

Since Ouroborus is an artificial life simulation created with the purpose of teaching biology, the MA will have genotype and phenotype attributes. The phenotype will determine the way in which the MA's reproduce, and will also control mobility and sensitivity.

The genotype is only a symbolic representation of the MA's genetic code; using this, it will be easy to teach and model the process of evolution complete with Mendel's laws. Once we have evolution plus the MA-CA interaction, we will end up with a practical tool for teaching ecology.


Architecture.

I recently came accross this interesting concept: "Symbiosis Ware":http://c2.com/cgi/wiki?SymbiosisWare. Question: are we writing SymbiosisWare? I say we are!

Ouroborus implements the "model-view-controller":http://ootips.org/mvc-pattern.html pattern with the "observer":http://ootips.org/observer-pattern.html pattern to communicate the three parts. "This":http://java.sun.com/blueprints/patterns/MVC-detailed.html MVC page is worthy of a visit just to check out the "diagram":http://java.sun.com/blueprints/patterns/images/mvc-structure-generic.gif detailing the pattern.

As we intend to allow the model to be distributed among any number of peers, we must create an ApplicationProtocol for it.

"Cage":http://www.alcyone.com/software/cage/index.html is a generic and fairly complete cellular automata simulation engine, as described by its homepage, we need to evaluate it to see if it will fit our needs.

"CAML":http://caml.sourceforge.net/ is an XML language application for describing CAs.

Now we have a ToDoList, please populate it with things to do. there are two problems that ouroborus team want to solve:

- the first is about the speed fo cage librarys, (the cellular automata librery is to slow),the solution is make speed profiling and rewrite the slow functions in pyrex, pyrex is a mix of python and C (http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/)

- the second is contruct the user interface (graphical user interface), this interface will be a mix of xml and wxpython You can see the "developers manual":http://linux.ajusco.upn.mx/~mundito/mundito/Development_manual.html in construction.

">Here you find the code. You can download it as ">zip archive or as a gzipped ">tarball.

Currently available creatures to populate Ouroborus may be viewed ">here.

We need to decide on a VersionControl system - Subversion! Our Subversion is currently down, meanwhile panx will edit the [http://www.spacemonkey.info/neighborhoods.py"> neighborhood.py] file. Someone please commit it as soon as our version control is back online.

Our progress will be tracked using ">ZenTrack, at ">our site. You can find some Zentrack manuals ">here.

We will use RegressionTests for the testing of the source code.

Documentation.

Here you can place links to all kinds of relevant documentation, which includes python tutorials, articles about artificial life, pygame tutorials, manuals for mundito users and developers, etc...

A "pygame tutorial":http://sjbrown.ezide.com/writing-games.html for the model-view-controller and observer patterns in games. Also there is a "tutorial":http://www.pygame.org/docs/tut/Executable.html for packaging pygame applications with "py2exe":http://starship.python.net/crew/theller/py2exe/index.html.

An excellent "python tutorial":http://www.python.org/doc/current/tut/tut.html written by Guido van Rossum, the creator of python and its Benevolent Dictator for Life.

"A paper":http://www.auml.org/auml/supplements/Cranefield1-OAS2001.pdf on UML and agent modelling.

A very rough and unmantained "translation of Guido's tutorial":http://talleres.ajusco.upn.mx/library/Manuales/python/index.html to Spanish. I am not at all proud of this translation, the formatting needs to be completely redone (the markup should be structural, format should be applied by a CSS stylesheet), and the translation itself needs some serious work (both technical and in terms of style); still, we provide it with the hope that someone might find it usefull, maybe even fix it (if you do, don't forget to send it to us).

CourseSyllabus for a 10 hour Python Workshop with Ouroborus.

Ismael Olea and I (Jergas) are organizing a technical documentation WorkShop for mundito developers, but, of course, everyone else is invited to join in.

CAGE.

The "Cage homepage":http://www.alcyone.com/software/cage/index.html is the only documentation I can find for it. (This of course means that we will need to write some tutorials or HowTos for it.)

Networking.

Docs about the "standard implementation of socket networking":http://docs.python.org/lib/module-socket.html. A "Socket Programming HOWTO":http://www.amk.ca/python/howto/sockets/ by "Gordon McMillan":http://www.hrdag.org/about/gordon_macmillan.shtml, (gmcm@hypernet.com), can be found in "A.M. Kuchling's page":http://www.amk.ca/.


Below are the standard help files for those of you who do not know them or need to see them again.

Wiki's Sandbox

If you just want to play with the wiki, visit the SandBox, this content will be mantained, but we ask you not to alter another contributions.

Comments?

Below is a space for comments. You can also use it to experiment with this wiki, to create pages not related to mundito, etc...

WritingSample de Palmis.


From unknown Mon Dec 8 21:32:04 -0600 2003 From: Date: Mon, 08 Dec 2003 21:32:04 -0600 Subject: Message-ID: <20031208213204-0600@talleres.ajusco.upn.mx>

Estoy nadamas probando

From unknown Mon Dec 15 16:25:46 -0600 2003 From: Date: Mon, 15 Dec 2003 16:25:46 -0600 Subject: Message-ID: <20031215162546-0600@talleres.ajusco.upn.mx> In-reply-to: <20031208213204-0600@talleres.ajusco.upn.mx>

hola, quien esta nomas probando? saludos, jergas

From unknown Thu Jan 8 13:05:49 -0600 2004 From: Date: Thu, 08 Jan 2004 13:05:49 -0600 Subject: YoProbando Message-ID: <20040108130549-0600@talleres.ajusco.upn.mx>

Yo. Yo sigo probando. Yo.

parece que los estuviera oyendo... --2004/03/24 00:32 CST
I love deadlines. I love the whooshing noise they make as they go by --Douglas Adams (http://www.edge.org/documents/adams_index.html"Lament For Douglas])


leeanse esto --2004/03/24 08:11 CST
Check out this article by Jaron Lanier for an interesting argument about the use of dimensions in computation: http://www.edge.org/3rd_culture/lanier03/lanier_index.html