Toys
The SDK supports all 13 Velvet models. They come in four kinds: every model vibrates, and some add a second motor, suction or heat. Build for these four and you cover every toy.
Vibration
One motor: strength, patterns and the 12 built-in presets.
await toy.vibrate({ strength: 60, durationMs: 3000 });Try Pixie in the playgroundDual motor
Two motors, outer (1) and insertable (2), together or one at a time.
if (toy.info.motors === 2) {
await toy.vibrate({ motor: 2, strength: 60, durationMs: 3000 });
}Try Eclipse in the playgroundSuction
Suction made by its motor: strength sets how strong; presets and patterns pulse it.
if (toy.info.suction) {
await toy.suction({ strength: 60, durationMs: 30000 });
}Try Aurora in the playgroundHeat
Vibration plus heat (low or high), up to 10 min at a time.
if (toy.info.heating) {
await toy.heat({ level: 'low', durationMs: 300000 });
}Try Ember in the playgroundCheck capabilities, not model names
After connect(), toy.info says what the toy can do. Show controls from that, and your app works with every model, including ones we release later. Before connecting, modelInfo(model) gives the same answer for a model name.
const { motors, heating, suction } = toy.info;
motor2Controls.hidden = motors !== 2;
heatButton.hidden = !heating;
suctionButton.hidden = !suction;Testing with hardware? One toy of each kind covers everything: for example Pixie, Eclipse, Aurora and Ember.