From first idea to field-ready robot, Lumière streamlines FTC programming, simulation, and deployment in one focused offline workspace.
Product naming lives in app/src/brand.ts, while stable install and project identifiers remain unchanged across future display-name updates.
Version 0.4.0 is released. Download it from Releases; copies already installed can update from Settings. To start a robot project, create one from the app, or clone the Lumière Quickstart and open it in Lumière.
Everything is tested without hardware: in the desktop simulator, and on a virtual Control Hub that runs the real robot library. It has not yet run on a physical Control Hub, so work through the hardware checklist on the stand before driving at full power. Release progress lists what each version changed and how it was checked.
| Path | Contents |
|---|---|
app/ |
Desktop and web app (React, Vite, Tauri) |
app/src/core/ |
Framework-free program logic: project format, geometry, Java generation, stream client (guide) |
app/src/desktop/ |
Frontend access to the desktop backend (guide) |
app/src-tauri/ |
Desktop backend: build-tool setup, project creation, Gradle and adb runner |
robot/ |
Robot library (ftc-lib) and desktop simulator (sim), built with Gradle |
quickstart/ |
Pinned upstream sources and the overlay layered onto the official FTC SDK to create a robot project |
fixtures/ |
Shared test fixtures: sample projects, golden Java, parity cases, build output |
scripts/ |
Quickstart generator, simulator smoke test, branding and rename tools |
docs/ |
Protocol, compatibility, simulator, connecting an FTC SDK project, Lumière Live, and hardware checklist |
cd app
npm ci
npm run dev # web app at http://localhost:1420
npm test # unit tests
npm run tauri dev # desktop appRobot library and simulator (JDK 17 to 21 and the Android SDK):
cd robot
./gradlew :ftc-lib:testDebugUnitTest :sim:testDebugUnitTestGenerate a robot project that uses this checkout's robot library, then run it in the simulator:
node scripts/quickstart.mjs --out ../robot-project --robot-library local
node scripts/sim-smoke.mjs --project ../robot-projectRename the product (dry run first):
node scripts/rename.mjs --name "New Name" --dry-runBSD 3-Clause. See LICENSE.