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.


Messages - rwill128

Pages: 1 2 [3] 4 5
31
Also, wouldn't it be cool to have a section of genetic code that described the size and configuration of each bot's "brain"? It could contain code for a small neural net, the parameters and initial configuration of which could be subject to mutation.

Of course.. that'd require a lot of computational power. But it would be cool.

32
Okay, I'd really like your feedback, but I will issue the disclaimer that I'm using this post more as a brain-dump/note-taking device than anything else. And I might be repeating other people's ideas here -- I certainly haven't read through all the posts on this issue.

I was thinking of nifty ways to classify species in DB, as part of graphing and record-keeping efforts but also to facilitate the possibility of sexual reproduction.

Here are some criteria that occur to me:

1. In order for two organisms to be of the same species, their DNA needs to be relatively similar in length. Off the top of my head, plus or minus 10% of their total DNA seems like a nice starting point for an arbitrary limit.

2. To create a rough taxonomy of sorts, we could compare their genes, and note which are roughly similar. (Which have ~90% of their commands in common, or have identical strings of commands that are long enough to be a significant sign of species similarity?)

OR

if we wanted to allow for mating between members of a species even if one is carrying a lot of junk DNA, has experienced a significant mutation, etc. we could only look for similar code surrounding certain commands, such as feeding or repro commands. That would allow for creatures that reproduce in similar ways to meet each other, while also allowing for significant differences in DNA composition elsewhere, which would be cool for allowing things like sexual differentiation, etc.

-----

Also, by writing this down, I realize, the more I think about these issues, the more questions I have. As a general design principle, to what extent do we want the features of real-life biology to be supported directly by the framework of the genes, and to what extent do we want the features of real-life biology to arise out of the genetic code?

An example (one of many) would be ... age-related growth stages. We could continue with the current, rather minimalist approach, where a creature would only ever change its behavior according the time it had been alive if it happened to have a code segment hidden behind an if age > X condition.

Or we could have one parameter of all organisms' DNA be an array of the organism's current genes, each gene paired with a variable that helps decide when they turn on. It's an artificial way of achieving age-related growth/behavior changes, but by providing a structure for such age-related behavior, you're allowing for more complex, more interesting bot behavior right off the bat.

---

Another example would be having a low food, medium food, high status variable (one that switches at various levels of bot energy -- these levels being subject to mutation) as a built-in part of every organism and it's genetic code.

The genetic code might be regulated so that each gene can have a low food, medium food, or high food tag -- or no tag at all -- at the beginning of the gene. The tag is a signal to the interpreting engine that this code should only be run when the appropriate status is in effect. And the mutation engine is smart, allowing mutations to modify these tags, remove them, or place them in the right position.

---

I know these methods (or similar ones -- these are just examples) might seem like artificial attempts to impose order on something that we think of as random and chaotic, but the facts might be different. There's a lot of evidence (from what I've read) that suggests, for example, that our genes can be turned on and off by environmental factors, by our behaviors, by our age, etc.

It would also be interesting to research whether different parts of our genetic code are subject to higher or lower rates of mutation depending on factors such as how often they are read, etc.

---

Also, here's a kid's video on youtube about biology that actually is pretty interesting. If you watch the last part about an experiment done with a fruit fly and a mouse's genetic code for producing an eye, you'll get an idea of another subject I'm curious about.

If we want to simulate an environment that supports organisms with great complexity and, well, interesting behavior, might it not be a good strategy to pre-structure the genetic code in such a way that all organisms, for example, are asked -- essentially -- "How do you make eyes?" An organism's "eye code" section could be blank, extravagant, or anything in between, but we gear the code's mutation engine so that eye-related commands appear exclusively in this section.

We could also have every organism posses a built-in section of code for building a body, and a special subset of commands that are only available in this section of code, these commands telling how to build a body. Another section of code might be all movement-related, etc.

I know this is a lot different than what DB does now, in some ways, but I'm just thinking that if we want to simulate more complex organisms, we have to provide some built-in avenues for structured behavior to arise. Anyway, please don't take my suggestions as criticisms.. I'm just curious what other people think.

That's my brain dump.

33
Darwinbots3 / Re: Hardware survey
« on: May 12, 2013, 10:59:43 PM »
Sounds pretty exciting. Can't wait to be see more details on the simulation model for DB3.

34
Darwinbots3 / Re: Helping
« on: April 30, 2013, 11:04:46 AM »
Hey Numsgil -- I've been messing around with the r930 version of Azimuth, and I know nothing about using a C Preprocessor in a C# VS Solution like this, nor have I used macros very much (though I read up on the MSDN and other tutorial sites about them last week), nor have I ever configured VSE to use any "pre-build steps" before...

... so I'm a long ways away from being able to deliver the custom tools you asked for last week. I can't even get it to build right now.

If I learn more about how to accomplish the pre-build steps that you mentioned by hand, and actually get DenseVectorPre.cs working the way it's supposed to -- even if it's the long and time-wasting way -- then I can probably help with the custom tool and scripts much more easily. At the very least I'll have learned something new.

Can you message me with detailed instructions on how to build it? I've got the UnitTestSharp.dll linked, which was causing most of the errors -- and the last error is a lengthy one. I'll copy it below -- though I doubt it's even necessary.

Code: [Select]
Error 4 The command "call C:\Darwinbots3\DarwinBots3.r930\Trunk\Modules.r930\Azimuth\..\..\3rdParty\mcpp\bin\release\mcpp C:\Darwinbots3\DarwinBots3.r930\Trunk\Modules.r930\Azimuth\Azimuth\DenseLinearAlgebra\DenseVectorPre.cs C:\Darwinbots3\DarwinBots3.r930\Trunk\Modules.r930\Azimuth\Azimuth\DenseLinearAlgebra\DenseVector.cs
call C:\Darwinbots3\DarwinBots3.r930\Trunk\Modules.r930\Azimuth\..\..\bin\release\Reformatter C:\Darwinbots3\DarwinBots3.r930\Trunk\Modules.r930\Azimuth\Azimuth\DenseLinearAlgebra\DenseVector.cs" exited with code 1. Azimuth

35
Newbie / Re: Running DB on Mac.
« on: April 29, 2013, 08:07:08 PM »
I tried it for a minute this afternoon, and Wine needed some extra downloads -- one of them was called "X11."

I didn't go much further with it because she'd just gotten it in the mail today and she's not too comfortable with a bunch of software appearing on it right away that she's not familiar with. And I frankly am not good enough with Macs to feel comfortable clogging up her new computer with extra stuff.

I might come back and get it working though -- it's an i7 processor that would be very fun to watch DB run on.

36
Newbie / Running DB on Mac.
« on: April 29, 2013, 03:09:35 PM »
Hey -- wasn't sure where to post it, but it seemed like a newbie questions, so here it is.

My girlfriend just got her new MacBook Pro in the mail, and I was really looking forward to seeing how DB2 runs on it -- I don't know why I didn't reach the obvious conclusion that it might not run on it.

Does anyone here use a Mac, and if so, what tools/methods do you use to run DB2? Also, if you have to use a VM or something (I'm not too familiar with how they work) does it slow the performance down a lot?

37
Darwinbots Program Source Code / Re: Quick Question on C++ DB Version
« on: April 25, 2013, 05:20:15 PM »
Aw! We should work toward some kind of barebones .exe. Personally I think it would inspiring to see something working, and might also draw more activity into the community.

38
Darwinbots Program Source Code / Re: Quick Question on C++ DB Version
« on: April 25, 2013, 12:57:32 PM »
Okay. Kind of cool to hear about the history of DB but I don't think I'll even attempt to code the other 20% when we've got this beautiful C# code base to dig in to. I'm starting to like C# a lot more than C++ anyway.


A second question: I've been digging through the forums and trying to figure out which ideas for new ways of modeling environments, metabolism, growth, evolution, etc. are actually going to make an appearance in DB3. I'm also curious how far along those implementations are, as it would be a really cool area to work on and theorize about. (I'm sure almost everyone else agrees, and that's why there's a whole forum for it.)

39
Darwinbots Program Source Code / Quick Question on C++ DB Version
« on: April 25, 2013, 01:09:13 AM »
So I see there's a C++ port of DarwinBots that never got finished, and I presume development was halted in favor of working on DB3 code.

But I did download the project snapshot posted by Numsgil in 2006, just out of curiosity, a few minutes ago.

Does anyone remember what kind of figures people were expecting in terms of performance boost between VB and C++?

40
Darwinbots3 / Re: Helping
« on: April 24, 2013, 03:49:06 PM »
Almost done with the copywriting -- gotta pay the bills, etc.

Anyway, I'll be gratefully jumping back into work I want to do (coding related work) at the end of the week, at latest.

Thanks for the information and sorry if it ended up being something you had to get done yourself.

41
Darwinbots3 / Re: Helping
« on: April 20, 2013, 05:42:47 PM »
So I'll check out the changes you checked in recently, but also I have a few questions about the AzimuthUnitTests.

I've been running a few to watch the code work, but I noticed that the first few times I ran the debugger on Azimuth.UnitTests, it tested a few chunks of code in Azimuth.

Now it doesn't seem to be doing so. As soon as the Main() method of Azimuth.UnitTests.Program passes control to UnitTestSharp by calling UnitTestSharp.TestRunner.RunAllTests(), it seems to never get back into the Azimuth code.

So now I've got the UnitTestSharp code and the Azimuth code in the same VS solution, and I can watch the code go from Azimuth.UnitTests.Program.Main into the UnitTestSharp code.

I've also browsed the TestsForUnitTestSharp code, and it appears most of UnitTestSharp is untested, according to a few TODO comments in the code. Does that explain why UnitTestSharp.TestRunner.RunAllTests() does not, in fact, appear to be running all the tests?

42
Darwinbots3 / Re: Helping
« on: April 19, 2013, 02:09:10 PM »
Heck yeah! Something immediately useful that I can do. And I can accomplish it in the short term, which makes it easier to get motivated.

I'll read the Custom Tools tutorial and get cracking.

And yeah, I've seen the ModuleDiagram. It was helpful for some basic insight, which is good.

The main thing I need to work out (and perhaps diagram for myself, just to keep it straight) is how Azimuth works within itself, in addition to how it's going to connect to the larger project. That idea of using the tests and the debugger to watch the code work is perfect, though. I will be doing that later this weekend.

43
Darwinbots3 / Re: Helping
« on: April 18, 2013, 08:41:37 PM »
Well, you're welcome to hit me with these other tasks.

The main thing slowing down my progress is that I can only work effectively learning one thing at once, and there's simply a lot more than one thing for me to learn -- C#, .NET libraries, math, your coding practices (which seem like good examples to follow), and the overall organization of your modules for Azimuth (and for the larger project that is DB3).

I've recently gotten a better mental map of which modules feature the lowest-level code and how they interact, so now I'm just learning how the basic Vector classes, etc. behave and what features they have before I get into the denser stuff.

The thing is, I start looking at the math, which usually makes sense, until I hit a concept I don't remember clearly, which means I get on Wikipedia or various other sites and read up on it. Then I go back to the code briefly and run into a line of C# code that I'm not familiar with. Next thing I know I've been on msdn.microsoft.com reading about the SerializableAttribute class for 45 minutes.

---

With all this math to learn, I'm starting to think the most effective way to review it is to practice coding implementations of it in my own basic programs.

But I'd like to also keep in mind how Azimuth handles these problems because it does it in such a clean, flexible fashion, processor-efficient fashion. As far as I can tell from my amateur perspective, physics engine libraries and object-oriented programming principles were made for each other, so it's nice to see a structured combination of the two.

---

Anyway, I'll keep on chipping away at the big pieces, but if there's some practical way of helping that I can take part in, I'll do that, even if it's not as fun.

44
Darwinbots3 / Re: Helping
« on: April 17, 2013, 10:26:40 AM »
Haha, I've been in the planes of the Liberal Arts majors for the last few years, grinding rhetoric and critical theory.

Working on getting my stats up in calculus this whole week, but even the trash mobs sometimes force a tactical retreat.

EDIT: Looks like I was just jumping in too deep. The dense linear algebra code is making a lot of sense. Should be able to make some actual contributions within a week or two. Thanks for your patience and willingness to shove all this information my way.

45
Darwinbots3 / Re: Helping
« on: April 14, 2013, 12:29:44 PM »
Wow. This is a great way to jump into math that I never thought I'd be involved with again.

Anyway, I'll just start off reading about the Gauss-Seidel and Jacobi methods and then read Numerical Recipes in C.

Pages: 1 2 [3] 4 5