A free-form NetworkTables dashboard for FRC, built for competition layouts, robot tuning, field visualization, and replay.
Electron | TypeScript | Lit | Material Design 3 | NT4 | Elastic-compatible
Flexure is an unofficial, cross-platform FRC dashboard for building operator and development interfaces around NetworkTables.
Its workspace is an unrestricted canvas rather than a fixed grid. Widgets can overlap, group, resize, move between tabs and windows, and be arranged in list, stack, grid, or tab containers. Flexure can import existing Elastic layouts while adding multi-window workspaces, Material Design 3 controls, shared NT subscriptions, recording, and replay.
Flexure is intended for driver-station dashboards, simulation, tuning, autonomous selection, diagnostics, and field visualization. It is not affiliated with or endorsed by FIRST, WPILib, or the Elastic project.
- NT4.1 and NT4.0 connectivity with automatic reconnect and connection diagnostics.
- Driver Station, team-number, localhost, SystemCore, and custom connection modes.
- Free canvas with pan, zoom, resize, overlap, layers, multi-select, smart snapping, groups, and layout containers.
- Expandable NetworkTables topic tree with search, drag-and-drop, recording selection, and a resizable browser.
- Chrome-style tabs and multi-window tab transfer.
- Elastic JSON import, robot-hosted layout download, and Elastic widget compatibility.
- Field2d rendering with official field images, robot poses, objects, and trajectories.
- Primitive, array, JSON, raw, MessagePack, and WPILib struct inspection.
- Editable controls with local draft handling and visible NetworkTables write errors.
- Configurable typography for Match Time, Large Text, Text Display, and Number Display widgets.
- Selective NetworkTables recording with pause, export, import, seek, replay, and variable speed.
- Material Design 3 light, dark, and system themes.
Download the latest package from GitHub Releases.
- Windows: installer or ZIP
- macOS: DMG or ZIP
- Linux: DEB, RPM, or ZIP
Open Flexure, choose a connection mode in Settings, and connect to the robot or simulator. NetworkTables topics appear in the left browser and can be dragged onto the current dashboard.
- Node.js 24
- Corepack
- pnpm 10
corepack enable
pnpm install
pnpm devpnpm check
pnpm package
pnpm test:smokeThe packaged application is written to apps/desktop/out/.
Flexure supports the common FRC connection paths:
- Start robot code, WPILib simulation, or a compatible NT server.
- Open Flexure Settings.
- Select Driver Station, Team Number, Localhost, SystemCore, or Custom.
- Select the Robot Code or SystemCore NT server target.
- Connect and drag announced topics or compatible widgets onto the canvas.
For simulation on the same computer, use Localhost (127.0.0.1) and Robot Code (5810).
Flexure can open local Elastic v1 JSON layouts and download deploy layouts from the robot. Imported tabs, widget positions, sizes, aliases, properties, list layouts, field settings, and topic paths are preserved where supported. Unsupported fields are reported as import warnings instead of being silently discarded.
The current compatibility inventory is documented in ELASTIC_FEATURE_MATRIX.md.
flexure/
apps/desktop/ Electron main, preload, and Lit renderer
packages/core/ Workspace model, canvas editor, widgets, Elastic import
packages/nt4/ NT4 client, subscriptions, structs, recording, replay
resources/icons/ Application icon sources and platform icons
docs/ Architecture, connection, compatibility, and file docs
scripts/ Packaging, release, smoke, and metadata tooling
- Architecture
- Connections And Settings
- Elastic Compatibility
- Workspace File Format
- Implementation Plan
Flexure is under active development. The current focus is reliable competition use, complete Elastic behavior compatibility, robust recording and replay, and efficient dashboard editing.
Flexure is released under the MIT License. Third-party software, assets, and compatibility references retain their respective licenses; see THIRD_PARTY_NOTICES.md.
Flexure is an independent project. It is not affiliated with or endorsed by FIRST, WPILib, or Gold872/Elastic.
