What is Ayva?

Ayva is a lightweight, behavior-based JavaScript library for controlling Open Source Multi Axis Stroker Robots such as the OSR2+, SR6, or any device that can be controlled with TCode.

The following codepen examples demonstrate some of the capabilities of Ayva (as well as usage of the OSR Emulator—a useful component for visualizing and testing movements without an actual hardware device):

Orbit Grind
Classic Stroke
Custom Behavior
Random Stroker


  • Perform arbitrarily complex movements across multiple axes using an expressive Motion API.
  • Construct arbitrarily complex behaviors using a generator function based Behavior API.
  • Built-in common motion shapes (cosine, parabolic, linear).
  • Built-in Classic Stroke behavior and orbital motion based behaviors (Tempest Strokes).
  • Run built-in patterns by name (orbit-grind, vortex-tease, swirl-tease, etc).
  • Configurable. Setup an arbitrary number of axes with limits, alias, and type (linear, rotation, or auxiliary).
  • Supports the OSR2+, SR6, or any device that can be controlled with TCode.
  • Agnostic about the nature of the target device(s) (doesn't care if device is simulated or actual).
  • Supports outputing commands to multiple devices at once.
  • Cross platform with zero dependencies.
  • Runs in a browser, as part of a Node.js app, or theoretically anywhere with a JavaScript runtime.
  • Extensively tested (100% coverage).
  • Thoroughly documented.
  • Quick and easy setup.


For detailed information on how to use Ayva, see the following tutorials provided in the Documentation:

Getting Started
Motion API
Behavior API