Space ants – pheromone based behavior

Inspired by Sebastian Lague simulation* I decided to rework it for 3D.

The main idea is that each ant leave pheromones of “Home” or “Food” types, depending of where he goes from – that is, if ant goes from home/colony (magenta sphere) is leaves “Home” pheromones (magenta half-transparent cubes, and if it goes from food (solid blue spheres) it leave half-transparent blue boxes (“food” pheromones).

Each and consists of body – the only visible part represented with green capsule and two invisible parts: detector (big sphere of detection in front of it) and gland (interesting fact – ants’ organs, responsible for pheromones production are called “glands”) on the back to produce pheromones.

The logic of ant is simple as that:

Continue reading

Ants – some notes on learning process

Meanwhile managed to complete 10^8 steps training of 128/4 network with 128/64 memory (ant#302).
It shows nice behavior:

But it’s not as stable as I expect (extrinsic rewards learning showed much more stability):

*303 is just continue of learning of #302 w/o configuration changes

I guess it’s because of constant learning_rate_schedule, so trying ant#304 with “linear” one (initializing with latest ant#302) to get more stable version. And try to get back extrinsic reward system (on the top of the existing model / from scratch).

  • Spawn collision check radius (privateSpaceSpaceRadius) increased to prevent scenarios when agent can touch both resources (as it just locks in this position till the end of the episode giving huge positive result while actually it’s a rare case of the environment configuration).
  • Finally manages to fix spawn issue. But sometimes even 50 generation of random spawn points are not enough to get one collisions-free. So, in the future the problem will even grow with the number of objects….
    Solution to consider – poisson disk sampling algorithm
  • Learning doesn’t progress without normalization of the rewards. No idea yet. All rewards are in range -1;+1, probably cumulative reward should be in range (need to check ml-agents code).

Dusting off an old project – ML with Unity.

The original idea was to to check how good is unity with machine learning for some crowd simulations, train some models and play with environment parameters – physical (such as speed of movement or distance of vision) and behavioral (group reward vs individual reward). Agents (“ants”… yes they are. despite they nicely camouflaged as green boxes) should eat and drink to survive.

I started this project a few years ago, but stuck with bugs in simulation code (e.g. one side of the communication hangs leaving agent locked) being unable to train any model that shows reasonable behavior.

Getting back to it, I decided to temporary get rid of communication part, and on the first stage focus on training model for individual agent – in other words make sure they can learn to drink and eat (pretty common problem – they stuck consuming one resource doing no attempt to consume the other resource).

Radiola is available on Google PlayMarket!

radiola_mockup_smallI’m proud to announce that Radiola is now available on the Android platform and you can download it from Google PlayMarket.


Inheriting the best choice of online music from desktop versions Radiola for Android has completely new interface developed especially for mobile devices. The player controls are nested in sidebar, so you can easily access them anytime with one slide. You can share any station to your friends – application fully support .pls files (format compatible with winamp and other players).

I pay much attention to compatibility, so you can run Radiola on Android 2.3 and higher. Radiola uses common Android MediaPlayer component, so the number of supported types of streams depends on your Android version. The only device is known as unsupported is LG G3 (it looks like it has some specific MediaPlayer impementation).

Hope you enjoy the app and the music! Don’t forget to rate the Radiola.

If you have any probem with the app – please send the crash reports. It will helps to analyze the problems and fix the bugs.


*Closed! Join the Radiola for Android alpha-testing team!

Radiola is coming to alpha-testing stage, and we are welcome you to join the testing team.
Join the G+ community to get access to alpha-release on Google PlayMarket!

radila_android_progress_smallAnimation shows the evolution of Radiola for Android from the scratch to alpha-version, which is coming very soon. During this time Radiola changes the design for a few times and got some features such as sharing radio-station as .pls files as well as import such files.

Radiola for Windows 2.0.3 update

Radiola 2.0.3 screenshotI’m glad to introduce you Radiola for Windows 2.0.3 update. It gets cleaner interface design – thanks to Dmitry Zodchi for his priceless critics.
Some other changes:

– volume control changes not the system volume, but channel volume. Volume level is saved between program runs.

– switchable tray notifications

Download it now and don’t forget to share with your friends.

Radiola 2.0.2 for Linux

radiola_linuxRadiola is now available on Linux platform!
Binary rpm and deb packages for Suse 13.1 (32bit and 64 bit), Suse 13.2 (64bit), Ubuntu 14.10 (32 and 64bit) is available in download section.

87bpmOur friends “Imaginary station” was added to build-in list of radio stations (check Dubstep folder). They are broadcasting live every We and Fr @ midnight (moscow time). And here is the .pls playlist for the station.

Radiola freeware player updated!

Radiola 2.0.1 is ready for download.

Radiola freeware player for online radio v.2.0.1 screenshot

In this version:

  • new green interface (tons of bugs was returned to nature)
  • stunning spectrum analyzer with 4 display modes (click to switch)
  • aac+ (shoutcast) streams support (on windows and linux only)
  • recording support. By default recorded files will be stored in user’s music folder (Ctrl-E to open it). You can change this in config file (radiola.cfg in Ctrl-S folder)
  • winamp visualization plugins support (on Windows only) – press Ctrl-V to start geiss. You can change plugin in config
  • when player fails to connect to radio with all streams addresses it updates addressed from playlist (if any)
  • all operations are accessible via keyboard
  • large history files support
  • large and huge fonts support
  • autocheck for new versions
  • bigger build-in list of radio stations (you need to delete old playlist so it will be recreated). Now full list of channels is included.