Artificial intelligence and game development has always been a passion of ours.Designing a system to allow a simulation of rigid body systems seemed like a perfect fit so we did that. We personally enjoy making games, immersive environments, the whole 9 yards. We've gotten pretty good at designing the landscape but an environment can be pretty barren without life. Unfortunately adding life to a game is a difficult trial and error task. Something we didn't want to spend all our time doing. Our software allows us to animate lifeless 3d models with simulated brains and unleash a population into our created environment to learn to survive and thrive in whatever way we see fit.
What it does
It learns to master its environment. Using a genetically encoded population of simulated brains the software will discover the best decision making process to do what the user requests as best as it can. We kept the interface generic enough to be applied to anything from robotics to the stock market.
To demo this product we decided to run the simulation on a group of spiders and set a fitness function to each an end goal, which in turn leads the spiders to learn to walk.
How we built it
We built it by improving on an open source python neural network library to generalize and fit our needs.Then we coded the game in Unity to demo the algorithm.
Challenges we ran into
We had troubles connecting the processing server and the unity engine.The connection had too much lag that delayed generation processing.We solved that by using zeromq, which reduces the lag significantly because it is faster and more lightweight hence reducing the lag.
Our demo of the genetic neural network demos a spider learning to walk caused us issues because it was hard to make a fitness function that made the sure the spider learned to walk instead of jumping to the goal.
Accomplishments that we're proud of
We are proud of getting the spider to understand the goal of walking and building its way to that function through many generations in the algorithm.
What we learned
We learned that working with neural networks is hard to work with but the results are well worth it.
What's next for NEWT3D
We are going to try to improve the algorithm so it runs faster by implementing it in parallel and have it run on a cluster of computers at the same time greatly improving the processing power of the system.
Find out more at buildaneural.net