(Autonomous Robot Control Software)
Make robots with the easiest robot programming software. Experience user-friendly features that make any robot easy to program.
Change Release Notes
This is a small release regarding Random features of your robot. There was a recent discussion about what "random" really means in programming. Random() is a common function used in computers making unpredictable decisions. However, if you wish to write your own routines for random behavior, perhaps Random() isn't optimized.
As a disclaimer: We encourage people to use the Personality Generator, which uses an algorithm based on trending - not random.
So, the solution? After a bit of brain storming, I came up with a new Random function called GetRandomUnique(). This new function tries to make the returned value unique from the last. This is not a Personality Generator replacement, but it will make your robot much better behaved.
- EZ-Script controls can be resized
- New EZ-Script command: GetRandomUnique()
- EZ-Script compiler optimizations
Here is an Example Project displaying the differences between Random() and GetRandomUnique(): Example-Script-RandomNumberFunctions.EZB

As a disclaimer: We encourage people to use the Personality Generator, which uses an algorithm based on trending - not random.
So, the solution? After a bit of brain storming, I came up with a new Random function called GetRandomUnique(). This new function tries to make the returned value unique from the last. This is not a Personality Generator replacement, but it will make your robot much better behaved.
- EZ-Script controls can be resized
- New EZ-Script command: GetRandomUnique()
- EZ-Script compiler optimizations
Here is an Example Project displaying the differences between Random() and GetRandomUnique(): Example-Script-RandomNumberFunctions.EZB

ARC Downloads
Teams FREE
Free
- Includes a free 3rd party plugin robot skill per project
- Community support
- Free with trial limitations
For schools, personal use & organizations. This edition is updated every 6-12 months.
Recommended
Early Access
Only $8.99/mo
- 2 or more PCs simultaneously
- Includes unlimited skills
- Premium support
- And much more
Experience the latest features and bug fixes weekly. A Pro subscription is required to use this edition.
Runtime FREE
Free
- Load and run any ARC project
- Operates in read-only mode
- Unlimited robot skills
- Early access fixes & features
Have you finished programming your robot? Use this to run existing ARC projects for free*.
- Minimum requirements are Windows 10 or higher with 2+gb ram and 500+MB free space.
- Teams known-issues can be viewed by clicking here.
- Get more information about each ARC edition by clicking here.
- See what's new in the latest versions with Release notes.
Compare Editions
Feature | ARC Teams FREE |
ARC PRO |
---|---|---|
Get ARC for Free | View Plans | |
Usage | Personal DIY Education |
Personal DIY Education Business |
Premium support | $14.99/ticket (optional) |
✓ 1 request/month ($9.99 for additional requests) |
Feature requests | ✓ Yes | |
Early access to new features & fixes | ✓ Yes | |
Simultaneous microcontroller connections* | 1 | ✓ 255 |
Robot skills* | 20 | ✓ Unlimited |
Skill Store plugins* | 1 | ✓ Unlimited |
Cognitive services usage** | 10/day | ✓ 6,000/day |
Auto-positions gait actions* | 40 | ✓ Unlimited |
Speech recongition phrases* | 10 | ✓ Unlimited |
Camera devices* | 1 | ✓ Unlimited |
Vision resolution | max 320x240 | ✓ Unlimited |
Interface builder* | 2 | ✓ Unlimited |
Cloud project size | ✓ 128 MB | |
Cloud project revision history | ✓ Yes | |
Create Exosphere requests | ✓ 50/month | |
Exosphere API access | Contact Us | |
Volume license discounts | Contact Us | |
Get ARC for Free | View Plans |
* Per robot project
** 1,000 per cognitive type (vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection)
** 1,000 per cognitive type (vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection)
Upgrade to ARC Pro
Synthiam ARC Pro is a cool new tool that will help unleash your creativity with programming robots in just seconds!
@ DJ - I don't know how you do it without losing your mind, there was a huge argument last year with a bunch of programmers over the randomness of random, and let's just say there wasn't enough alcohol in the world at the time....
Thank you for the update
BTW would this be a bad time to ask about SendSerial text string issues?
Press configure on the control and add the keys and their respective scripts
Chicken, Chicken, Chicken
This will keep my robot from repeating the same thing too often and still mix things up a bit.
I was playing around with different spoken words and phrases before this new command... that worked fine, and now it is even better
Here is a simple example... My coding abilities are 30+ years out of date
Code:
Project File: Example-Script-RandomSpeech.EZB
Code:
You must of done something or is it me?
Thanks
Yep after 4 years I'm finally getting to the point where I'm working in random routine responses into my robot. I ran into an odd occurrence with my scripting so I dug up this old thread talking about this function.
Anyway, I've written a script that will randomly choose a sound clip from a randomly chosen actor. In the actual script, each actor is divided into their own subsection. In this actor's section are commands to play sound files that will be randomly chosen. Clear as mud?
The problem is if I have a list of choices the last on in the list will never get picked. This happens with either the GetRandomUnique() or the GetRandom() command.
For example if I've written $response = GetRandomUnique(1,4) the 4th number will never generate.
I just had a thought; Is it the way I'm starting my numbering system? Do I need to start with 0?
Here's my code so far. Works pretty good except I can never get the last choice on the list to get picked. Any ideas? Thanks.
Code:
So, to randomly get a number between 1 and 4, you would use GetRandomUnique(1,5)
Code: