Download AnimatLab V2 For Windows

The Windows installer for the latest version of AnimatLab can be obtained here AnimatLab V2 Version 2.1.5. You can find the source code for AnimatLab on the SDK page. You should have Windows 7 or greater operating system. A machine with a good graphics accelerator is strongly recommended. We have plans to get this application running on other operating systems in the near future.

 Please see the "Getting Started" page to find the key tutorials you will show you what you need to know to get up to speed on installing and using AnimatLab. There is now a video tutorial on how to use the new features and the user interface for AnimatLab 2!

 If you have any problems with installing or using AnimatLab then please check the postings on the forums section. If you do not see anything already there on your problem then please add it and we will try and respond.

 An AnimatLab Handbook is also now available. It provides details on how to use the various features of AnimatLab. It comes as either a PDF or a word document.

 If you still need version 1 of AnimatLab then you can download it as well, AnimatLab V1.0. The original SDK is also available. However, please be aware that version 1 is no longer being supported. There will be no new updates for this version of the application. So unless you have a really good reason for using the older version I would strongly recommend you use the new version. The original Locust simulations and human myotactic reflex simulation from the first AnimatLab papers are available in their original download locations also.

Download AnimatLab 2.0 for Ubuntu

The AnimatSimulator is now available for download for the Ubuntu operating system. The simulator should also run in other versions of Linux, but to use those you will need to go to the Linux SDK page and compile directly from source. Also, the install package available here is only for 64 bit versions of the Ubuntu (amd64). It has been tested on Ubuntu 12.04. If you want to use it on a different version of Ubuntu, or have trouble getting it work on your system then please see the SDK page here for detailed instructions on how to build from source. The debian install package can be downloaded here (animatsimulator_2.1.2_amd64.deb). The steps needed to get it to install are listed below. Terminal commands are shown with a grey background, while packages that need to be installed are shown in light blue.

  1. Configure your video drivers. AnimatSimulator will not run, and you will not be able to properly install the prerequisites packages unless you have your actual video drivers installed and configured correctly. The default drivers that come with the Ubuntu installation will not work.
  2. Use the software center to install Synaptic package manager (Or any other package manager you would prefer to use.)
  3. Install boost 1.55 from source
    wget -O boost_1_55_0.tar.gz
    tar xzvf boost_1_55_0.tar.gz
    cd boost_1_55_0/
    sudo apt-get update
    sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev
    sudo ./ --prefix=/usr/local
    sudo ./b2 --prefix=/usr/local
  4. Use Synaptic to install openscenegraph 3.0.12 or higher
  5. Install animatsimulator. Download animatsimulator_2.1.2_amd64.deb
    sudo dpkg -i ./animatsimulator_2.1.1_amd64.deb
  6. It should install with no errors. To run simulations you will need a sim file generated from the GUI, or by hand, that uses the linux libraries. You can export any simulation in the GUI and set the operating system to Linux to save out the correct file. Once you have a file then you can run the simulation as shown below, where sim_file is the path to the simulation file.
    ./animatsimulator sim_file
  7. If you ever need to uninstall AnimatLab then you can do this through a package manger like Synaptic by searching for animatsimulator, or you can run the following command in a terminal to uninstall it.
    sudo dpkg -r animatsimulator

Revision History

AnimatLab 2.1.5 Release - Wednesday, October 5, 2016

AnimatLab 2.1.5 Release.

This is a minor release that fixes some licensing issues to make sure it is free.


AnimatLab 2.1.4 Release - Thursday, May 26, 2016

AnimatLab 2.1.4 Release

This is a minor release for a bug fix related to the AnimatSerial interface.


AnimatLab 2.1.3 Release - Wednesday, September 30, 2015

AnimatLab 2.1.3 Release
This is a minor release for some bug fixes and a generic serial interface for AnimatLab. Here are the changes that are in this release.

1. I have decided to switch AnimatLab back to being total free. So from this latest version on there are no more costs for Pro upgrades. Everyone will have the full feature set enabled.

2. Added code to set the compliance margin and slope, and max torque. Also, added code to measure the time between motor send commands for firmata.

3.  Fixed a bug that was sometimes converting scaled numbers incorrectly for the IGF neurons/synapses. This happened when you tried to set a value that was much larger or bigger than its normal default scale. It was not getting scaled correctly in the GUI editor. If your simulation behaves differently after this patch then this may be the cause. If so, then please get in touch with me and I will help see if we can fix it.

4. I had a request for a generic serial itnerface between AnimatLab and other hardware, so I created the AnimatSerial communications. This provides a way to send values from any component within AnimatLab to external hardware, and to read in data from hardware and modify simulation components. I have provided an example Arduino sketch and library. The Arduino sends data to the simulation, where it is converted into currents and injected into a neuron. Neural or body data can also be sent out to the Arduino. Please see this help page for more details:

Please see the Download page for a complete description of the changes. (

AnimatLab 2.1.2 Released - Thursday, October 9, 2014

AnimatLab 2.1.2 is a Major Release
The first version of the AnimatLab Robotics Framework is released! It has taken longer than I hoped it would to get this release finished. However, I ended up having to add a lot more features than I thought I would have to in order to make it really useful. Getting the release and tutorials out is such a big job that I wanted to get more functionality in before I had to deal with that. There is still more work to do to get the robotics framework to do all the things I want, but I felt this was a good stopping point where I could get it out into the hands of other people to start using.

The new robotics framework takes AnimatLab beyond pure neuromechanical simulation, and makes it very easy for almost anyone to build real, biologically inspired robots that use nervous systems based on how real animals control their behaviors. The framework makes it easy because it takes most of the difficult engineering work of interfacing with the hardware out of the equation. You can build very complex, biomimetic robots without having to write a single line of source code, or know anything beyond some very basics of electronics, and all of this using commercial off the shelf components. 

You can build AnimatLab simulations just as you are used to doing, and later on add robot part interfaces that connect motorized joints and sensors to corresponding real servos and sensors, and your neural control system does not know, or care, whether it is talking to real hardware or the simulation. I have also added controls to allow you to use joysticks and other interfaces to interact with the nervous system simulation. So for instance, you can use a wireless joystick to move a robot arm within your simulation.

The Robotics Framework runs in both 32 bit and 64 bit windows, and it runs on Ubuntu. I have also tested it on both an Odroid U3 and NVIDIA Jetson TK1 micro-computer.

Finally, I have created seven new detailed video tutorials, totaling over two hours, that show you in a step-by-step fashion how to use the robotics framework to build and control a working robot arm, along with new documentation of the framework.

Major Changes
1. You can now add robot part interfaces to your existing simulations to control real hardware using the neural network control system from your simulation. Please see the Robotics documentation for more details. 

2. AnimatLab now has a framework in place to allow physical devices to interact with a neural network in a simulation or on a robot. Right now only the wireless XBee commander joystick is supported, but I plan to add keyboard and standard joystick interactivity soon. Please see the remote control documentation for more details. 

3. I have created realistic mesh files for all parts of the base Bioloid robot frame kit. They are available for free in the AnimatWarehouse.

4. Contact sensors can now become "sticky." Your neural network can turn on/off the stickiness of a contact sensor, and when it is on and comes into contact with another part in the scene they will stick together until stickiness is turned off. I used this in the robot arm simulation to allow the gripper to pick up parts. However, there are a number of other applications. For example, you could simulate a gecko's ability to walk up walls.

5. You can now specify a target data type for adapters. Previously the incoming data type for a node was hard-coded. Now it is possible for the user to change it. The main place where this is used is to allow you to have two adapters connected to a joint where one lets you control the target position and the other sets the target velocity. 

6. You can now setup a delay buffer on any adapter, and you have the ability to disable all output from an adapter for a given period immediately after the simulation starts in order to allow the neurons in your simulation to settle down to a steady state.

7. There are now CodeBlocks project files for all the simulation libraries for use on Linux.

8. I added a new Modulate Neuron Property synapse to the Firing rate neural plug-in. This allows you to modify any of the properties of the post-synaptic neuron based on the firing rate of the pre-synaptic neuron.

9. I have created a new video channel on YouTube. ( I have transferred all of my video tutorials up to my YouTube channel, including the ones on the robotics framework. I am in the process of building a hexapod robot that will use a CUDA enhanced neural network to control its movements and behaviors. I plan to start posting a number of small videos to document my progress as I go along. So please subscribe to the channel so you can follow new videos as they are added.

Here are links to the new video tutorials:

AnimatLab Robotics Framework Introduction:
AnimatLab Robotic Arm Video Tutorial: Simulation Setup:
AnimatLab Robotic Arm Video Tutorial: Robot Control Part 1:
AnimatLab Robotic Arm Video Tutorial: Robot Control Part 2:
AnimatLab Robotic Arm Video Tutorial: Joystick Control:
AnimatLab Robotic Arm Video Tutorial: Position and Velocity Control:
PhantomX Hexapod Preview:

Whats Next!
I have already made a lot of progress integrating the CARLsim GPU-accelerated spiking neural network library ( into AnimatLab. It will allow users to visually layout large populations of neurons and syanpses and run them on NVIDIA GPUs using CUDA. In particular, I am targeting the NVIDIA Jetson TK1 embedded supercomputer for robotic applications, but it will run on any NVIDIA graphics card.


AnimatLab 2.1.1 Released - Friday, April 11, 2014

AnimatLab 2.1.1 is a Minor Release
AnimatLab simulations on Linux! This release of AnimatLab allows you to run the AnimatSimulator with the Bullet physics engine on Linux computers. I have tested it on Ubuntu 12.04, but it should work just as well on any other variant of Linux. The GUI editor will still only run on Windows for the moment. I plan to port it over to run on Linux as well over the next year, but there are a number of technical hurdles that have to be overcome to do that. So for the moment you must still use the GUI to build your simulations, and then you can export them and run them on the stand alone simulator on a Linux system. Below is a list of the changes for this release.  

Major Changes
1. There is now a new section on the AnimatLab download page for installing the simulator on 64-bit Ubuntu computers. I provide a debian install package and list out the steps you will need to perform to get that installed and working.  

2. For those who want to do development, or get the simulator to run on a different variant of Linux, I have also added a new AnimatLab Linux SDK page. A tar.gz file is provided with all the source code necessary, along with a very detailed, and numerous, list of steps you will need to follow to get it to where it will compile and run. If you do get the simulator running on a different flavor of Linux then please let me know.

3. I modified the GUI to make it easy to export your simulations for Linux. When you select File/Export standalone sim there is now an operating system option in the export dialog. You will only be able to set the OS on physics engines where it is available (Robotics and Bullet at the moment). When you select Linux it will export the simulation files with the modifications necessary to run it on on that platform. The names of the library files and executable are different to comply with Linux naming conventions.

4. I have simplified the way that you start-up the AnimatSimulator. Previously, you had to specify "AnimatSimulator -Library library_name -Project sim_file", and the library you choose had to match the ones in the file or it could cause problems. Now all you have to do is specify the simulation file and it gets the library information from that. The new format is "AnimatSimulator sim_file". 

Whats Next!
This month I will be receiving several micro-computers (Odroid U3, nVidia Tegra, and a Parallella). I plan to get the simulator running on all of those and add to the robotics framework to control motors and read sensors from those devices GPIO ports. 


AnimatLab 2.1.0 Released - Thursday, March 20, 2014

AnimatLab 2.1.0 is a major release
The beta version of the open-source Bullet physics engine plug-in has now been released. This means that if you use Bullet for your physics, then the AnimatSimulator is now free and 100% open-source! The GUI editor does have a standard and Pro version, but all source code for the simulation component is fully open-sourced and available for download. Special thanks to Dr. Donald Edwards of Georgia State University for financially supporting the creation of this new physics plug-in. It has taken over half a year of work to get this beta version released. Here is a list of the changes in this new version.  

Major Changes
1. With version 2.1.0 AnimatLab has been upgraded to work with both the original Vortex physics engine from CM-Labs, and with the free, open-source Bullet physics engine. All new development in AnimatLab will be on the Bullet physics engine. Vortex will be maintained for an extended period, but eventually it will be going away entirely, or put into a different version. I strongly urge you to use Bullet for any new projects, and to begin porting over any old projects that you would like to keep going forward. However, keep in mind that this is still a beta. I have tested it heavily, but I am certain that once a wider audience starts really using it that bugs will begin jumping out of the woodwork. 

2. I tried my best to make it easy to port existing projects over to Bullet. There is now a "Convert physics engine" item under the File menu that will open a form to allow you to choose which physics engine you would like to use. It will then run a migration to try and convert your simulation to use the new engine, and backup the existing project. Unfortunately, if it is a complex project it will probably still require a little work to try and get it running the same with Bullet. There are several differences between the Vortex and Bullet versions, and there are some issues that Bullet currently has that you will need to work around. I have put up a page on the website to discuss these differences. Please read through this before attempting to convert an existing project to use Bullet. I am still in the process of converting over some of my more complex simulations, so the locust and hexpod simulations do not currently work with Bullet. I hope to have converted versions available in the warehouse soon, but I felt the Bullet plug-in was ready and wanted to go ahead and get it out there so others could begin putting it through its paces. If you have issues converting your simulation to use Bullet please feel free to post on the forum. I, and others, will do our best to help you.

3. When you create a new project you can configure your physics engine, mass and distance units directly in the new Project dialog box. 

4. The simulator now comes in both a 32 and 64 bit version. However, It will still take some work to get a 64 bit version of the GUI editor working, so this is only for the AnimatSimulator at the moment. Also, for the Bullet plug-in you have the option of choosing to use single point or double point precision in the physics engine. It uses double precision by default. You can create your simulation in the editor as normal. When you use the "Export standalone sim" item of the File menu it now opens up a dialog to let you configure the type of stanalone file you would like to create. Regardless of the physics engine you are currently using you can choose any of the other available engines. You can also set the filename and choose 32/64 bit, and the precision to use. 

5. From here on I plan to start devoting most of my time to upgrading AnimatLab for neuro-robotic applications. Towards that end, I have added the start of a new robotics framework and physics engine. This new library will allow you to add hardware interface connections to an organism and its various sensor/motor components so you can simulate it in AnimatLab, and then test and run it on the real hardware. Once you have added the interfaces in the GUI you can export a standalone simulation with the robotics physics engine to run on your real system. This library is still just in its infancy, but I wanted to go ahead and get it out there. I plan to expand this a lot over the next year. 

6. A new version of the SDK is available. Because of the 32/64 bit split, and allowing the user to choose single or double precision I had to create new versions of all the dependent libraries. You can download the SDK and all associated libraries here. Please read the directions fully and make sure you the required software is setup and working on your computer before attempting to install the SDK. Some people have run into issues installing because of this issue. Because of size issues I had to split the SDK install into various components for Boost, Bullet, OSG, and the Animatlab SDK. If you only want to use vortex then you will only need the SDK install, but if you want to be able to compile the Bullet plug-in then you will need these other installers as well. On the plus side though, that will then give you all the source code used in the simulator.

7. Doxygen help documentation is now available for the simulator at ( This is still not 100% complete even for the simulator, but most of it does have documentation. I hope to get the simulator fully documented at some point this year. Documentation of the GUI will have to wait until several other major changes happen.

8. The simulator SDK solution and project files have now generated by the premake configuration system. For anyone using the SDK this means that the AnimatLabSimCode solution is now moved into the VisualStudio folder under AnimatLabPublicSource. It will take a little more work to get the GUI using premake, but I plan to convert it over sometime this year.

Minor Changes
There were very few changes for the existing Vortex engine. Most everything done recently related to the new Bullet plug-in.

1. Fixed an issue where some of the data on forces acting on the body were not being collected correctly. It was pulling the data before it processed all children parts. If the child parts also applied forces then that was not being captured. This has been resolved.

2. Fixed a bug with disabling/enabling collision pairs. It was not setting it up correctly when you did it in-place. The next time you loaded the project it was correct. It now works correctly within the same simulation also.

Whats Next!
Within the next month I hope to release an Ubuntu Linux version of the AnimatSimuator using the Bullet physics engine.


Version 2.0.9 Released - Monday, December 23, 2013

AnimatLab 2.0.9 is a minor release.
I was doing some testing for another project and ran across a few new bugs. Some of them I actually introduced with the 2.0.8 release. I wanted to get fixes for these out before I really dug back into the code again, so I decided to put out another minor release to address these few issues.

Bug Fixes
1. Fixed a bug in the multi-selection code. If you had multiple items selected under a node and then collapsed the node, it tried to deselect each one causing a long delay. I modified it to autimatically deselect them the correct way first.

2. Fixed a bug where I forgot to disable the Bullet option on the project conversion dialog. This should not have been released yet.

3. Fixed an issue that I introduced last release where the Save As ok and cancel buttons were obscured making this feature unusable. 

4. Found and fixed an issue where you would get an error when deleting multiple selected items. 

Version 2.0.8 Released - Monday, December 16, 2013

Version 2.0.8 is a minor release.
It has been a while since I have had a release of AnimatLab, and I have had a few different bugs stack up in that time. This is a minor release to fix those bugs. Over the last several months I have been working on a major release with some really cool features, but it is still not quite ready to go out the door. However, I wanted to go ahead and address some of these bugs first. My goal is to have the major release out early next year, but we will have to see how the testing goes.

Bug Fixes
1. There was a bug in AnimatLab version 1 where if you copied an Ion Channel it would not replace the ID so you would get duplicates. This was not really noticed in that version because those IDs were not validated. However, all IDs are validated in version 2, so this was causing converted projects to not load correctly if it had duplicate Ion Channel IDs. I modified the conversion code to recognize this condition and replace any duplicate IDs so the projects would load.  

2. Another bug in the version 1 conversion code happened if the old project used the same mesh for multiple body parts. When it does the conversion it has to convert the mesh file as well to make it match the old system. When it was doing this for the same mesh for different parts then it would have the converted mesh that only matched the last part it processed, and the other ones would be incorrect. I changed the conversion code to check the mesh file name and ensure that each part converted the mesh to use a unique name instead so each part got its own conversion.

3. I attempted to fix an issue several people reported with running AnimatLab on Windows XP. The ManagedAnimatTools library will not load correctly. I setup a test box and was able to duplicate the problem, and I investigated this some more. However, from posts on Microsofts site it appears this is a problem with using .Net 4.0 in a managed c++ dll that calls unmanaged code on Windows XP specifically. The fix is to roll back to .Net 3.5. However, when I tried this the code would not compile at all. So I was unable to get this fix in at the moment. I have plans in the 2.1.0 release (2 releases away) to move away from using the managed c++ interface. The primary reason is that this does not work on Linux, and I would like to be cross-platform compatible. So I will soon be switching to another method that should not have this bug in it and the code should run on XP with no problems at that point. Sorry for the inconvenience.

4. Fixed a bug where the mass, and volume of static children were always being reported as 0. This bug was caused by the fact that vortex puts all the mass and collision properties of a static part into the parent part to which it is connected. I had to modify the GUI to reflect this. Static children now only show the density, not the mass or volume. You can change the density of each child static part, and those changes in mass and volume are reflected in the parent part. So the density of the parent part affects only that part, but the mass and volume shown on the parent is for itself and all static children.

5. Fixed a bug where the density/mass of of a static child part was not being modified after the initial load when a user changed it. 

6. Fixed a bug where setting the world coordinates of a join was producing erratic changes in the coordinates of that joint. There was an internal transform not being applied correctly. 

Version 2.0.7 Released - Friday, June 7, 2013

AnimatLab 2 Official Release with AnimatLab 2.0.7
This is the first non-beta release of AnimatLab 2.0! That does not mean it is bug free, it just means that it now has all the features for the initial release, and that they have been thoroughly tested. Below is a list of the new things that are included in this release.

Major changes
1. Pro Version: AnimatLab is now split into a Standard and a Pro version. The Standard version will support all the same capabilities, but it will have limits on the number of neurons, synapses, and body parts that you can add to a simulation.  If you have the Pro version and want to distribute your more complex simulations you can still do this. Any simulation built with the Pro version can be loaded and run in the Standard version. You can also edit any of the existing parts in the Standard edition. However, if the Standard user wants to add to that simulation then they will need to upgrade. Upgrades to the Pro version can purchased in the store on the website. This release comes with a 30 day trial of the Pro edition. I have attempted to keep 99% of the code as open-source. You can still download the project sdk, compile it, and add to it. There is only a small piece that is provided only as a binary that enforces the licensing.  

2. Joint Relaxation: You now have the ability to set the stiffness and damping on any of the constraint equations that are used for the joints. This allows you to put in a certain amount of give to your joint instead of having it be very stiff all the time. I also created a new video tutorial and a help page that show how to use this new feature.  

3. Joint Friction: The hinge and prismatic joints now have friction. Previously, there was no friction on the joints, so they had a tendency to just keep on moving indefinitely. You can now get much more realistic behavior for the joints. I created a new video tutorial and a help page that show how to use this new feature.  

4. Simplified Material Types: I redid the material types to make it much easier to understand. You now specify a single material type that gets applied to a body part, and the physics engine determines how to handle the contacts between two parts automatically.

5. Angular Friction: One big problem in the past is when you had a rolling object it would just keep rolling forever once you got it moving. You now have the ability to turn on angular friction to stop spinning and rolling motions. I created a new video tutorial and a help page that show how to use this new feature.

6. I also added new documentation and a video tutorial to show you how to use meshes and terrains.

7. Fixed a bug in the IGF neurons where you could not add new synapse types. I also added new automated tests for this error case.

8. I fixed the issue where you could not resize joints.

9. Added a new splash screen for the application.

10. Modified the sim runner application to run in console mode or windows mode depending on command line params.

11. I got the locust jumping, kicking, and tumbling simulations converted up to version 2, and added into the warehouse.

12. I added a link on the help menu that takes you to a page that describes the mouse and keyboard controls for the simulation window to move around and manipulate objects.

Minor Changes
1. Fixed a bug where the triangle mesh was not scaling correctly.

2. If the root object had no default graphics its transparency was not set correctly.

3. I changed the default slip param to be 0.

4. I fixed the default folder location for a new project to be set by the user preferences.

5. I added code to display the update text you are reading when doing an update.


Version 2.0.6 Released - Thursday, April 11, 2013

Version 2.0.6 is a major release.

It has been a while since I last updated AnimatLab. The main reason for this is I have been working hard to finish off some of the last remaining large bugs, and I have been trying to finish off all the smaller bugs I could. So there are a whole lot of fixes in this release. I have broken this out into major and minor changes below. If you find any additional bugs then please report them on the bugs forum and I will attempt to get them fixed. This is the last Beta release of Animatlab 2.0. I plan for the next version to be a production release.

Major Issues/changes

  1. The new AnimatLab webiste is now online! I have finally switched over to use the new website. If you have not seen it yet, then please take a look at The new site is really focused on increasing user interaction. It has a functioning forum where you can ask questions. It has the new Animat Warehouse described below where you can share your own simulations. It has user feedback sections on all pages, and it has a wiki site where users can add documentation and How-tos for AnimatLab if they feel something is missing. I also have a newsletter for registered users where I will send out important announcements like this one.
  2. Animat Warehouse: There is a new section on the AnimatLab website under the community menu called Animat Warehouse. This page allows users to share their simulations, videos, documents, etc. I have a added all the old tutorials to the warehouse for download. I also have a few new simulations in there that demonstrate the awesome graphics abilities of AnimatLab 2. One is a details model of a hexapod robot, and the other is a frog that finds and eats dragonflys. Please see below for more details on these simulations. If you have things you want to share with everyone else, then please feel free to upload it to the warehouse.
  3. Simulation stability: There were some serious issues with the stability of simulations in version 2, especially with ground contacts. Those issues should now be resolved. In the simulation properties there is now a setting called "Stability Scale." This is a coefficient used to scale the world stability parameters of the physics engine. I have attempted to set this to reasonable values for the different unit scale settings, but you may need to adjust this if you still run into stability problems. Making the value larger should increase the compliance of the springs and other parameters used for stability
  4. Property control stimulus/node: I added a cool new feature that allows you to control the property of any object in the simulation either through a stimulus or directly through the neural network. This is a VERY powerful feature. It allows you to control pretty much anything in the simulation directly. Neurons in one organism can turn on the visibilty of parts in another organism, or modulate the weight of a synapse, etc. With this feature you and the organisms now have complete control over you simulation. Please see the help page and video tutorial for a full description of how to use this feature. One other note on this feature, because we now have this stimulus I have removed the enabler stimulus. If you try and convert a project that has an enabler it will instead be converted to a property control stimulus that will do the same thing. So you should not notice any difference in behavior.
  5. Graphics demonstration projects: I have created two new example projects to demonstrate the new graphics capabilities of AnimatLab 2.0. The first is a huge upgrade to the old hexapod robot simulation. I took pictures of all the parts of the real robot and used Google Sketchup to create meshes for each one. I then built a complete model of that robot, and a small two room house that has a kitchen and a living room. It has a battery charger, a toy box, and toy blocks scattered throughout the rooms. The robot attempts to clean up the room by scooping up the blocks and moving them to the toy box. It must also maintain its battery charge or it will run out of power and die. The second example is a forest scene that has a frog sitting on a log. Dragonflys buzz near it and the frog must track the dragonflys and shoot out its tongue to eat them. If it cannot eat them quickly enough, then it starves and dies. Both of these simulations are uploaded to the warehouse, so you can download them there.
  6. Scripted simulation window: I wanted to be able to produce some nice looking videos of the new demonstration projects. So I needed some way to have the camera fly around the scene in a reproducible manner. I built the scripted simulation windows to do that. This is a new data tool that allows you to setup paths that the camera will follow while the simulation is running. It allows you to precisely control where your camera is going, and what it is looking at. Please see the help page documentation or the video tutorial for more information on how to use this new tool.
  7. More efficient chart creation: I finally got tired of having to go find the item I wanted in the treeview every time I wanted to add a new item to a chart. So I built a much simpler method to do this. Now whenever you want to add something to a chart all you have to do is select the axis you want to add it to, and then right click on the item you want to add and select "Add to Chart." It will automatically add this item to the last selected chart axis. This makes it much easier to put together charts.
  8. All the old tutorials have been converted to run in the new version successfully and are now available for download in the new warehouse.
  9. Added the ability to set the mass of a part. You can now see the mass, density, and volume for all rigid body parts. You can set either the mass or density for the part. Setting one will calculate the value of the other and set it accordingly. The mass and volume values shown come directly from the physics engine itself. They are not simply derived using formulas. So what you are seeing is what is actually being used by the physics.
  10. Upgraded to the latest Vortex 5.1 physics engine.
  11. You can now freeze any rigid body part, not just the root part.
  12. Fixed a bug where materials were not being setup correctly when a simulation was reloaded. It was setting everything to the default material. It now correctly honors your material types.
  13. Added the ability to manually set the dragger radius for a selected item. Sometimes it was difficult to get to the dragger because it was not the size that was needed. You can now set this as desired so you can always get to it.
  14. Fixed the camera tracking code to not reset your position when you switched to view other objects. It now maintains that position, but just changes where the camera is pointing.
  15. Added back the inverse muscle current stimulus.
  16. Added back the voltage clamp stimulus.
  17. I fixed a difficult problem with springs not enabling correctly under some cases. This is now resolved and works correctly.
  18. Items in the treeviews and dropdowns are now sorted. It was very, very annoying trying to find things in the treeview when it was not in alphabetical order.
  19. Added the ability to add parts by right clicking on the body part and selecting "Add child part", or "Add root body."
  20. Fixed several issues with trying to select multiple items at the same time. It was realllly going slow while doing this. It is much quicker now.
  21. Changed the neural network editor to allow you to directly hit the +/- buttons to zoom in/out instead of having to select options from a drop down menu.
  22. Added the ability to plot more data for given parts. This includes things like if an organism is alive.
  23. Added the ability to split a texture over a terrain in segments, just like with the plane. Allows the texture to look much more realistic than having is blown up to cover entire terrain.
  24. Fixed an issue where the mouse spring was not scaling its forces correctly.
  25. The mouth part was only eating from the very first food source that it found. If there were multiple sources available within the minimum distance it would only use the first one, and if there was no food left in that one it would not eat from the other sources. I changed this so it will use all available food sources within the minimum distance.

Minor Issues

  1. Fixed a bug where you could not zoom in past a certain point while focused on a body part. The camera would prevent you from getting too close. You can now zoom all the way inside a part if you want to do so.
  2. Modulated/Gated synapses: I fixed several bugs related to these synapse types. They were sometimes not being initialized correctly, and they were not being copy/pasted correctly.
  3. Fixed an issue where items that were added to the collision exclusion list were not applied immediately.
  4. Fixed a bug in the editing of gains for adapters.
  5. Found and fixed several issues with setup and initialization of random firing rate neurons.
  6. Fixed an issue in the muscle model where the PE length was not getting setup correctly.
  7. Found and fixed an issue with the force stimulus. If the applied force precisely balanced the force of gravity it would put the dynamics to sleep. I had to add call to wake the dynamics when the stiimulus was deactiveated.
  8. Fixed an issue where the data column name was not getting updated when the name was changed.
  9. Fixed an issue where frozen parts were not selectable by the mouse.
  10. Fixed a bug where if you open, close, and then re-open a simulation with a chart in it then it was crashing.
  11. Fixed an issue where constraint limits were not being copied correctly.
  12. Fixed a bug where if you tried to focus the camera on a stomach part the app crashed.
  13. Fixed an issue where it would sometimes remove links to offpage connectors. It was incorrectly looking for compatible link types and not finding any.
  14. When starting up the app sometimes incorrectly said it was in collision mode when it was in graphics mode instead.
  15. I got rid of the bone shape for the rigid body node in the neural editor. It was just annoying. I replaced it with a standard shape.
  16. Fixed an issue where if you deleted a firing rate normal neuron that had gated or modulated synapses then it would kill the app when you selected one of those items.
  17. Fixed a few minor issues with the lighting.
  18. Changed the validation code to allow you to set the frame rate down to 2 HZ. I was using this to do time lapse videos of the hexapod robot running around.

Version 2.0.5 Released - Friday, December 14, 2012

Version 2.0.5 fixed three minor bugs. Bug fixes are listed below.

  1. The text for the drop down menus in the IGF synapse editor were incorrect for the clone and add new features, so it appeared those options were not available. This was fixed.
  2. I found a bug where the gated and modulated firing rate synapses were trying to initialize within the simulation even if the user had not selected a synapse to act upon. This was causing an error to happen. The system was modified to only do this initialization if a synapse was set.
  3. In the situation in bug 2 it causes a more serious problem because when it died during the initialization it short-circuited the initialization for all following items. I have now wrapped this in error handling so that even if one init dies it will still attempt to initialize the remaining items.


Version 2.0.4 Released - Friday, November 23, 2012

There is a new video tutorial available on the animatlab website that shows how to use the user interface and the new features of version 2!

Version 2.0.4 fixed several major bug fixes, and added a few new features. Fixes are listed below.

  1.  I changed the default material types to add slip to them. I found that this was very important for getting more stable simulations. If you do not have that then it tends to produce large forces when interacting with the ground plane, like it is getting stuck while moving.
  2. I found out that I had accidentally commented out the code that was automatically checking for updates. So the only way to get updates in previous versions was to manually check for them. This is fixed now.
  3. I added the ability to scale a loaded mesh to a desired size. This makes it much easier to use straight downloaded mesh files from the internet with no other modifications.
  4. I also added back the ability to set texture and color of meshes directly.



Version 2.0.3 Released - Sunday, November 11, 2012

Version 2.0.3 fixed several major bug fixes. Bug fixes are listed below.

  1. Fixed the performance issues. Several of the larger simulations perfomed considerably more slowly than animatlab 1.0. I found several issues that were slowing the system down and resolved them.
  2. There was a bug where the mouse spring did not seem to really work when trying to pull on child parts. I tracked this down. There were a few different issues, but the main culprit was that I was incorrectly trying to sale the force by the mass of the selected part. So small parts produced a smaller force than large parts.
  3. Fixed a bug in the time heads-up display on the screen. I changed it to only update once a second, and generalized its code some more. This was actually on of the performance issus. Previously, it was updating this time value far too often, and it was a costly action.
  4. Added timing output for the base simulator object so I can directly compare average simulation step times of the old and new version of the software.
  5. Added a new Free joint that allows you to connect body parts with no physical restrictions on movement. This is useful for building things like chain links.

Version 2.0.2 Released - Saturday, August 4, 2012

Version 2.0.2 had a number of bug fixes, and a significant new feature.

  1. Playback control mode. This is a new feature that allows you to control the playback and frame rate independent of the integration time step. You now have three choices for playback control. i. Fastest possible: This plays back the simulation at the fastest possible rate. It does not pad the integration time step at all. ii. Match physics step. This attempts to make the simulation play back in real time. If it takes less than real time for an integration step then it will add extra time to make one physics step equal the integration step time. So 1 second of simulation time should be close to a second of real time. However, if the simulation time is greater than the integration time already, then no additional time is added. iii. Match preset value. This is similar to the match physics step option above, but it attempts to match a user defined time step. This allows you to slow the simulation down if you need to. You can set it to a larger value indepenedent of the actual integration time step. You can also control frame rate independent of either the integration time step or the playback mode. Playback control settings can be found by viewing the playback node properties, or the simulation node properties.
  2. Fixed a bug that was throwing an exception when drawing gates or modulatory synapses for firing rate neurons.
  3. Modiied the lighting system to provide better lighting during new and converted projects. You should not have to do significant modifications to it now on converted projects.
  4. Fixed a bug in the code to change unit scaling in a project.
  5. Fixed a bug that was preventing you from clicking and editing a name in the workspace treeview.
  6. Fixed a bug that was throwing an exception when modifying the size properties of rigid bodies.
  7. Made significant changes to the testing infrastructure to make sure it is testing the same code pathway used in the manual testing.
  8. If adding a collision only rigid body it sets the transparencies correctly so the part does not just disappear from the simulation when run.
  9. Attempted to fix some sizing issues for the error and IGF synapse type editor.
  10. Changed the select part type dialog to say select joint or rigid body to make it more clear.