Audiotoolbox Plugin icon Audiotoolbox Plugin Enable UWP voices, change default audio devices, capture audio and route it to EZB controllers with session tracking and device control. Try it →

Release 2012.11.28.00

Desktop — Windows

ARC Release

ARC (Autonomous Robot Control) is Synthiam's flagship desktop robot programming platform. Build, program, and control any robot with powerful AI, 500+ plugins, and a visual no-code interface — all from your PC.

🤖 500+ Robot Plugins
🧠 AI & Machine Learning
☁️ Synthiam Cloud
🖥️ Windows 10 or 11

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

User-inserted image


ARC Downloads

ARC

FREE
$0 always free
  • 1 third-party plugin skill per project
  • Trial cloud services
  • Personal, DIY & education use
  • Updated every 6–12 months
Recommended

ARC

PRO
$8.99 per month
  • Use on 2+ PCs simultaneously
  • Unlimited robot skills
  • Cloud backup & revision history
  • Weekly features & bug fixes
  • Business use permitted

ARC

RUNTIME
$0 always free
  • Load & run any ARC project
  • Read-only mode
  • Unlimited robot skills
  • Includes early access fixes & features
  • Minimum requirements: Windows 10 or higher, 2 GB RAM, 500 MB free disk space.
  • Recommended: Windows 10 or higher, 8 GB RAM, 1 GB free disk space.
  • Prices are in USD.
  • More about each edition: Download & install guide.
  • Latest changes: Release notes.

Compare Editions

Feature
ARC
FREE
ARC
PRO
Get ARC Free View Plans
Usage Personal · DIY · Education Personal · DIY · Education · Business
Early access to new features & fixes
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 recognition phrases * 10 Unlimited
Camera devices * 1 Unlimited
Vision resolution max 320×240 Unlimited
Interface builder * 2 Unlimited
Cloud project size 128 MB
Cloud project revision history
Create Exosphere requests 50 / month
Exosphere API access Contact Us
Volume license discounts Contact Us
Get ARC Free View Plans

* Per robot project

** 1,000 per cognitive type: vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection, azure text to speech


ARC Pro

Upgrade to ARC Pro

With ARC Pro, your robot is not just a machine; it's your creative partner in the journey of technological exploration.

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#17  

As per Random() functions in programming of all languages that I am aware of, the range of return values includes minValue but not maxValue.

So, to randomly get a number between 1 and 4, you would use GetRandomUnique(1,5)


# Choose a random actor and speak a phrase before going to their subsection.
$response = GetRandomUnique(1,4)

# Response depending on random number
if ($response = 1)
  ControlCommand("Soundboard v4", Track_61)
  Sleep(2000)
  Goto(Dr_Smith)
ELSEif ($response = 2)
  ControlCommand("Soundboard v4", Track_72)
  Sleep(2000)
  Goto(R2D2)
ELSEif ($response = 3)
  ControlCommand("Soundboard v4", Track_77)
  Sleep(2000)
  Goto(Will)
endif

  # -----------------------------------------
:Dr_Smith
# Speak a random phrase from 1 to 10
$DRresponse = GetRandomUnique(1,11)

# Response depending on random number
if ($DRresponse = 1)
  ControlCommand("Soundboard v4", Track_62)
ELSEif ($DRresponse = 2)
  ControlCommand("Soundboard v4", Track_63)
ELSEif ($DRresponse = 3)
  ControlCommand("Soundboard v4", Track_64)
ELSEif ($DRresponse = 4)
  ControlCommand("Soundboard v4", Track_65)
ELSEif ($DRresponse = 5)
  ControlCommand("Soundboard v4", Track_66)
ELSEif ($DRresponse = 6)
  ControlCommand("Soundboard v4", Track_67)
ELSEif ($DRresponse = 7)
  ControlCommand("Soundboard v4", Track_68)
ELSEif ($DRresponse = 8)
  ControlCommand("Soundboard v4", Track_69)
ELSEif ($DRresponse = 9)
  ControlCommand("Soundboard v4", Track_70)
ELSEif ($DRresponse = 10)
  ControlCommand("Soundboard v4", Track_71)
endif
Halt()
#------------------------------------------------------------------

:R2D2
# Speak a random phrase from 1 to 4
$SWresponse = GetRandomUnique(1,5)

# Response depending on random number
if ($SWresponse = 1)
  ControlCommand("Soundboard v4", Track_73)
ELSEif ($SWresponse = 2)
  ControlCommand("Soundboard v4", Track_74)
ELSEif ($SWresponse = 3)
  ControlCommand("Soundboard v4", Track_75)
ELSEif ($SWresponse = 4)
  ControlCommand("Soundboard v4", Track_76)
endif
Halt()
#------------------------------------------------------------------

:Will
ControlCommand("Soundboard v4", Track_78)
Halt()