---
name: flux-rotor
description: Build an offline interactive motor cutaway with actual synchronous rotor motion, balanced phase currents, reversible assembly and bilingual controls.
version: 0.1.0
---

# Flux Rotor

## Example

Cobalt Drive is a silver motor with copper windings, alternating rotor magnets, a keyed shaft and a finned housing. Run its prescribed synchronous rotation, reverse or change speed, inspect the three phase traces, open the cutaway and separate six component groups.

```sh
node <skill>/scripts/fill-prompt.mjs --slots <skill>/assets/prompts/examples/cobalt-drive.json --out prompt.md
node <skill>/scripts/new-project.mjs --out my-motor
cd my-motor && npm ci
npm run dev
npm run build:single
npm run shoot -- --file dist-single/index.html
```

Use Node 22.14.0. Build only inside the generated project. Read [method](references/method.md), [slots](references/prompt-slots.md), [verification](references/verification.md) and [hosting](references/hosting.md).

## Edit and deliver

Edit src/motor.json for bilingual names, 1–3 pole pairs, length 2.2–3.4, housing radius 1.5–1.9, rotor radius .72–.98, base electrical frequency .3–1.2 Hz and three palettes. The rotor must remain at least .5 units inside the housing radius. Names accept at most 40 characters. A pole count change creates 6p winding groups and 2p alternating magnet sectors. Larger mechanical changes require editing world.ts and its geometric verification. These are illustrative world units.

Drag to orbit and scroll or use buttons to zoom. Space runs or pauses, C opens the cutaway, E separates or assembles, F shows field markers, R resets. Arrows reverse or increase speed with the stage focused. Touch uses the same native buttons, speed range and stage drag. Deliver editable source, the offline single HTML and real bilingual reports. Validate an alternate pole count and bounded geometry before shipping a new example.

## Boundaries

No key, runtime model call, external asset or persistence. npm ci installs pinned build dependencies. Three balanced cosine currents drive a prescribed synchronous rotor angle and a spatial harmonic indicator. The rotor does not acquire speed from solved magnetic torque. No voltage, winding impedance, induction, load, efficiency, temperature, structural analysis or manufacturing tolerance is computed. Field arrows illustrate a spatial harmonic; they are not a finite element magnetic field or physical flux density. The displayed rpm is the nominal synchronous speed in this chosen slow demonstration.

Cutaway hides real shell, endplate and outer stator sectors. Separation translates named component groups along the shaft; it is an inspection layout. The motor has simplified geometry and no product identity. Reduced motion starts stationary and makes explicit separation immediate; explicit run remains available. Audio starts muted, initializes only after a gesture and uses synthesized tones. Headless browser timing and emulated touch do not establish physical-device or human listening acceptance.

## FAQ

- Another motor? Change motor/sequence slots, keep validated data, real geometry and capture verification.
- Why does the rotor follow the field exactly? Synchronous motion is prescribed as mechanical angle = electrical angle / pole pairs; this is an explanatory construction.
- What do the colors mean? Each winding has a phase and sign. Actual material color/emission follows its signed phase current.
- Can I calculate torque or efficiency? No. Add a separately validated solver if needed; never infer such quantities from this display.
- Invalid input? The app reports a localized explanation and stable motor_* code.
- Portable output? Use the single HTML or an allow-scripts iframe, retaining dependency notices.
