Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Cyberduke

Pages: [1]
1
Darwinbots3 / Happy Birthday Numsgil
« on: August 24, 2009, 05:23:32 PM »
Unfortunately there is no amusing saying or picture in this post, I did look for one though and it’s the thought that counts      

2
Darwinbots3 / Thoughts on Multithreading...
« on: August 19, 2009, 12:32:55 PM »
Numsgil, what are your current thoughts for implementing multithreading in Darwinbots?

The two approaches I can think of are:

Single step – sequential parts
So in one cycle; a DNA thread pool would run while the main thread waited for them to all finish and then kick of the physics and wait until that was done then render the result of one complete step.
The length of the cycle is the sum of all its parts, but the processing within each part is done in parallel.

Multistep – parallel parts
So in one cycle; one thread pool is processing the DNA of all the bots in the simulation
While at the same time another thread (pool) is processing the physics for the DNA results from the previous step, at the same time another thread is rendering the results from the physics for the step before. The length of a cycle is equal to its slowest part.

Does a multistep approach even work for this kind of simulation; I know it can for games.

3
Biology / Real DNA Programming
« on: August 18, 2009, 01:56:47 PM »
I just watched a cool video...
http://video.google.com/videoplay?docid=-6950604815683841321
its along similar lines to the wet alife synthetic bacteria thing.

But I love the idea of being able to design and write organic nanobots.

4
Darwinbots3 / Hi Guys
« on: August 10, 2009, 08:53:50 AM »
Whoa time flies,
I have been off gallivanting around with my new gf and sorting out my new house etc, I can’t believe I last stopped by like 10 months ago, only seems like a few weeks.

Anyway stuff around here has been returning to normal lately and I have been feeling an increasing urge to get back into some hobbyist programming projects and thought of you guys    

I wouldn’t mind getting back on the project if you guys will have me.  
I took a look at the source in the repository and it looks like you have been making some good progress.

I think I saw a todo list around somewhere, is it still just bite off a chunk and start chewing?

5
My current mutation sim has been running for 252 hours now and has clocked 40,885,341 cycles
It currently has 720 lifeforms in, 690 of which started out as animal minimalis other 30 are alga minimalis

Here is one of the animal minimalis' DNA after 290 mutations.
And I still have't seen any canibots.

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\'] pyth
 cond
 dec
 *.eye5 floor =
 *.refeye *.venom !~=
 xor
 start
 201 rnd .aimright store
 cond
 and
 *.aimright >=
 start
 *.refveldx .dx store
 dec
 - div 36 or
 1 sqr - store
 ~ *.eye5
 start
 74 >
 start
 -6 .shoot store
 store
 *.nrg 5985 >=
 xor
 *.up !~=
 43 300 and
 store
 !=

6
Off Topic / Illumina Job
« on: October 25, 2008, 04:29:24 PM »
Today I received an e-mail from a recruitment company asking whether I would be interested in a job with a company called ‘Illumina’. Which was only of note because for one, they deal with producing tools for genetic analysis, and two, the job is based 5 miles from where I was born and lived for the first 12 years of my life. I just wondered given the field; does anyone know of them?

7
Darwinbots3 / Networking and bot memory
« on: October 23, 2008, 04:03:24 PM »
Now this is just an idea and possibly an ill thought out one at that, but what is the current thinking on bot memory values? I read somewhere you wanted them to be 9999 to -9999? The largest complete signed decimal number to fit into a 16 bit integer. Why not a 32 bit number? I.e. allowing 999999999 to -999999999 and then use 64 bit integers for the stack so you can still do multiplications?
This would let you use fixed point numbers. Say a million with 3 points of precision?
This would mean that a single bots memory would be 3.9K (4K on the wire), bit packing would take that down to 3.78K (3.88K) and compression of the whole stream would probably get it down to an average closer to 3K per bot since there tend to be a lot of empty locations and repeats, especially in simple bots.

This would also make it possible to effectively simulate huge fields that are spread over multiple machines (distributed computing) using simple box packing when new machines come online.
Then a bot could remember a location on one sim, wonder off 3 or 4 sims over and be able to come back to the same point again.
I am working on the assumption that we could reasonably expect to achieve an average migration rate of 1 bot per second per peer/sim even over the internet, using the edges of each sims field to transport them within a linked structure of simulations.

8
Darwinbots3 / GUI layout
« on: October 15, 2008, 05:02:59 AM »
I wondered if anyone had any views or opinions on GUI layout.
I haven’t looked though the existing code to see what it’s doing yet but I was having a quick think about this during my commute in to work this morning, I would like to make a clear distinction between the simulation settings, and the application settings, maybe even to the extent of two separate forms.  The simulation settings would be anything that affects the way the simulation plays out, like physics, field sizes, energy inputs, energy costs, etc while the application settings or user preferences would be things like networking, display and auto-save options. To be honest I am not sure what’s currently saved in the current settings file I should have looked, but obviously you want to be able to post your settings (file) and somebody else can try them without it affecting their user preferences which have no bearing on how the simulation plays out.

Note: when I say networking I am thinking of details like host address and max bandwidth use etc, any settings regarding whether or not your bots can migrate across the network and in what numbers, might want to be stored separately in order to be simulation specific but I haven’t though out how that would work yet.

Second Note: Obviously they don’t need to be in separate forms to be stored separately; I am really just thinking about the visual layout and thus any inferred distinctions at the moment.

9
Darwinbots3 / DB3 Application UI
« on: October 13, 2008, 08:52:57 AM »
Are we going to have multiple simulations in one instance of the application (makes it easy to do holding cells with different options then) or are we going to restrict one application instance to one simulation?

If we have multiple simulations we would need deal with multiple viewers and preference sets. We could create viewers that you can attach and detach from a simulation, and I guess a form with a list of preference sets that you can go and load, save, edit, and then some mechanism to assign a preference set to a simulation instance. Maybe have some options to duplicate them, so you can fire up another simulation with only some minor changes?

10
Darwinbots3 / April fools Easter egg
« on: October 10, 2008, 05:45:29 PM »
I think we should put an April fools Easter egg in, such that on the 1st of April a random evolved bot knocks on the screen, and says “Cogito, ergo sum” in a little speech bubble, then goes back to normal.

[Standard Intoxication Disclaimer] – I am currently drunk and wish to apologise for any degradation in the quality of this post including any statements, views or opinions held there within. Normal service will be resumed sometime around midday tomorrow. And if Google is reading this post: 4+2=42

11
Darwinbots3 / DB3 Versioning
« on: October 01, 2008, 01:35:01 PM »
Since there are now going to be separate and distinct modules, in particular DNA and Physics modules can I suggest that there should be 2 published version numbers:
  • The DNA Version; which tries to change as infrequently as possible, only changing if there has been a breaking change to the DNA language or a universal change to the physics/simulation that would alter the behaviour produced from a given piece of DNA code.
  • The Application Version; which is an aggregate of everything else, for example new optional features or graphical enhancements etc.
This would allow people to better identify if the bot they have just downloaded will work as intended with the version they have.

12
Darwinbots3 / SVN Source
« on: September 29, 2008, 04:50:07 AM »
Is the code in SVN (Revision 22) up-to-date?
What is the plan for modularizing the different components?

How about a (and I use the term loosely) plug-in architecture,
Create a physics interface and a visualisation interface etc.

So you can just build each module in isolation working to an interface. Then at run-time, load in the relevant assemblies whereby you could swap between different implementations on a whim.

Note: This would also allow for self-patching, your boot module can check the versions of the assemblies download and patch them before loading and running them. (If it found an update for itself it would have to restart itself then start over)

The simulation module would implement an interface which exposes enough information such that any GUI implementation can be passed a reference to the simulation and draw the current state of the simulation (in any style it wishes), retrieve basic global stats and data for graphs etc, the job of interpreting and expressing the data in some useful form would be down to the GUI implementation. That way we could just build a very quick and dirty GDI+ display for testing that would suffice for now.
The simulation itself would have a reference to an object implementing the physics library interface.
(Obviously existing physics libraries would need an adapter to adhere to our interface) If you did want to build your own then it can implement that interface directly.

I think this is basically what you had in mind, but I couldn’t find anything laying things out in detail.

Also this way you *could* more easily run everything in its own thread thus totally separating the running of the simulation and the rendering of the simulation’s state, this also means that your graphics card’s performance does not cap your ‘cycles per second’ potential, you could be running your simulation at 50cps and rendering it at 30fps, obviously it just means that it would skip drawing some cycles. And conversely simulating at 5cps and still render at 30fps repeating the drawing of some cycles (but would appear much smoother to the user if you were also rendering superfluous data like information about the cell the cursor was over for example)

13
Darwinbots3 / 2D or 3D?
« on: September 27, 2008, 05:19:12 PM »
Hi, getting interested in this now, I have spend a good few hours now reading though the wiki and the forum for DB3 and I assumed it was going to be 2D but in the wiki it talks about a 3D simulation and plants with roots etc?

What is the current expectation for the physics simulation? And how advanced will it be?
The last time I played about with physics in a game each object in the world was approximated with a small collection of a primitive AABB  ridged body’s with an Octree for spatial partitioning as used in the broad phase collision detection. Then you can go crazy with what it actually looks like later on when rendering in the client (it was a networked game).  Though it would be cool to have a cell approximated as an OBB Polyhedron then it could really change shape and to join two cells you would pick the nearest face on each cell and join up the 6 vertexes.

As for digging, I have seen the fully destructible world demos but I wouldn’t know how to implement an ant digging a tunnel without creating the ground/wall from lots of smaller ‘blocks’ that can be excavated/destroyed.

2D would be simpler, by not a lot in any one area just overall, mainly it’s a little bit simpler and quicker for graphics (lots of objects onscreen), Collision detection, Quad tree instead of Octree.
Having said that 3D would be cool, but you have just given yourself a load of UI issues as I found out with my space RTS, you’re forced into coming up with some really innovative control schemes just to keep the UI usable if its not FPS based.

Pages: [1]