[ { "short_name": "ferri", "match_strings": ["Ferri"], "capabilities": { "vibrate": "compact eccentric-mass actuator, high response at low duty cycle" }, "intensity_floor": 0.0, "notes": "Small form factor. High effective output at low values; recommend starting below 0.3." }, { "short_name": "lush", "match_strings": ["Lush"], "capabilities": { "vibrate": "single eccentric-mass actuator, low-frequency dominant" }, "intensity_floor": 0.0, "notes": "Compact ovoid form factor. High output efficiency at low command levels." }, { "short_name": "gravity", "match_strings": ["Gravity"], "capabilities": { "vibrate": "eccentric-mass actuator along main axis", "oscillate": "linear reciprocating actuator; stroke rate scales with intensity" }, "intensity_floor": 0.0, "notes": "Dual-mode device. Oscillate requires intensity >= 0.05 to engage; low values map to slow cycle rate." }, { "short_name": "enigma", "match_strings": ["Enigma"], "capabilities": { "vibrate": "high-amplitude pulsed actuator (impact-style, not continuous waveform)", "rotate": "sonic-frequency acoustic actuator (note: maps to acoustic output, NOT mechanical rotation)" }, "intensity_floor": 0.4, "notes": "Two independent actuators. Threshold response: effective activation threshold ≈0.4. Rotate channel is acoustic, not rotational." }, { "short_name": "max", "match_strings": ["Max"], "capabilities": { "vibrate": "eccentric-mass actuator", "constrict": "pneumatic compression actuator; intensity maps to chamber pressure" }, "intensity_floor": 0.0, "notes": "Two independent actuators. Constrict is air-pump driven; intensity = compression force." }, { "short_name": "nora", "match_strings": ["Nora"], "capabilities": { "vibrate": "eccentric-mass actuator", "rotate": "rotational actuator" }, "intensity_floor": 0.0, "notes": "Two independent actuators. Rotate is mechanical, not acoustic." }, { "short_name": "edge", "match_strings": ["Edge"], "capabilities": { "vibrate": "two independent eccentric-mass actuators; address individually via feature_index" }, "intensity_floor": 0.0, "notes": "Dual-actuator device. Use feature_index 0 or 1 to drive motors separately." }, { "short_name": "hush", "match_strings": ["Hush"], "capabilities": { "vibrate": "single eccentric-mass actuator" }, "intensity_floor": 0.0, "notes": "Single-actuator device, no quirks." }, { "short_name": "domi", "match_strings": ["Domi"], "capabilities": { "vibrate": "high-output eccentric-mass actuator, broad-spectrum" }, "intensity_floor": 0.0, "notes": "High maximum output relative to other devices in this set. Typical operating range: 0.05–0.30." }, { "short_name": "osci", "match_strings": ["Osci"], "capabilities": { "oscillate": "linear reciprocating actuator (no vibrate channel)" }, "intensity_floor": 0.0, "notes": "Single-channel device. Responds only to oscillate, not vibrate." }, { "short_name": "dolce", "match_strings": ["Dolce"], "capabilities": { "vibrate": "two independent eccentric-mass actuators; address individually via feature_index" }, "intensity_floor": 0.0, "notes": "Dual-actuator device. Use feature_index 0 or 1 to drive motors separately." }, { "short_name": "flexer", "match_strings": ["Flexer"], "capabilities": { "vibrate": "eccentric-mass actuator", "oscillate": "articulated curling actuator (pivots rather than reciprocates linearly)" }, "intensity_floor": 0.0, "notes": "Two independent actuators. Oscillate uses curling articulation, not linear stroke." } ]