hi Charles!
good to hear from you...
Thanks for your interest in PyMorphous, you are the first person outside of the Correll lab at CU Boulder who has contacted me about it.
good to know ;)
well, amorphous computing surely is a concept with great architectural potential...
that with the fact that i *hate* functional programming & am a real python fanboi, well, it was bound to happen, right?
i'm *so* thrilled to find a fellow architect with an interest in these ideas... so excited to be in touch Charles...
Yes, it is slow, especially the Webots module. Cython is a good idea.
slow can be fixed...
glad you think cython would be the way to go probably...
I have a few questions if you don't mind:
- What are you using it for?
amorph comp comes in two fold in my work
1) i'm working on a phd on evolutionary computing. i've been doing quite a number of project with evolutionary computing
[ these projects for example... ]. however there is a real paradox in evo comp; although a technique for managing complexity, the complexity that you can represent [ think design encoding ] is very limited. ugh.
so, the way out here is to use the idea of cells; these refer to a DNA [ singleton ] that is being evolved; whether you have a single cell or lots, there no longer is a relation between the number of cells and encoding. this approach is also called evo-devo, and is somewhat tangential to amorphous computing, since you develop a set of rules for cells that needs execution in context.
here's a really good paper by jake beal...
- Are you using the Webots module?
uh dunno... just going through the examples & trying to understand the architecture really...
We have mostly stopped using PyMorphous.
It was a good learning experience for me to develop it. It turns out that this particular abstraction is not too hard to program.
i'm happy to hear that Charles...
Since last fall I have been working with WebGL/Javascript versions.
are you aware that with pypy you can cross compile to javascript?
i saw the project, pretty neat...
One without communication is on the
pymorphous.org website. I have also developed a version with communication which is not publicly available.
I no longer think that the nbr stack trace hack is useful or desirable.
Besides the slowness, there are several problems with PyMorphous
- It doesn't work on the web
? its trivial to wrap it into a RPC API ?
- The simulator runtime does not provide realistic simulation of robots. This was by design, but we are realizing that this may be needed for effective simulation of real robots.
hah! that's a strand of research we have in common...
my other interest in amorphous computing is that it allows you to conceive the idea of a complete building being constructed by robots.
i bought 2 large [ huge! ] ABB 6400 robots [ the classic industrial robot ] and i realized that these machines are _so_ dirt cheap...
so the interest is shifting towards programming a flock of 'em not just a single one [ though this is a _lot_ of fun... ]
an industrial robot can be had for $10000, so if you make progress in this direction, your in business.
the hardware isnt the issue here...
- Webots provides this functionality, but as I stated, Webots/PyMorphous is slow.
these are things we can overcome.
the important thing is that you really put up a cool structure to push these ideas further from
- It is not known if we can run PyMorphous on our chosen microcontroller (Atmel AVR Xmega). Python-on-a-chip is just a toy and not real Python, and we have not investigated Cython for microcontroller programming.
well, this is a really cool idea i think.
not only due to the fact that you'll have high level language + high performance, but my intuition is that since your putting out C code, it should be pretty easy to port to hardware. yes, it'll take a little more memory on the chip, but who cares... the duality could be really something.
-
PyMorphous does not provide a FSM programming environment, which we desire for deriving analytic swarm equations.
aha, that's an interesting idea.
you know, in fact its pretty simple to even define an new operator [ -> ] for such operations, its pretty easy to do that...
not a limitation of the language itself, right? or am i overlooking something...
Hope to hear back from you
sure thing!
its a real pleasure to discuss this with you Charles...
can you elaborate on why webgl / javascript is so important for you?
looking fwd hearing from you,
take care,
-jelle