Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flexure

Flexure

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

Download Flexure

Flexure displaying an imported Elastic FRC dashboard

What Is Flexure?

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.

Highlights

  • 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.

Quick Start

Download

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.

Requirements For Development

  • Node.js 24
  • Corepack
  • pnpm 10

Run Locally

corepack enable
pnpm install
pnpm dev

Build And Verify

pnpm check
pnpm package
pnpm test:smoke

The packaged application is written to apps/desktop/out/.

Robot And Simulation Connection

Flexure supports the common FRC connection paths:

  1. Start robot code, WPILib simulation, or a compatible NT server.
  2. Open Flexure Settings.
  3. Select Driver Station, Team Number, Localhost, SystemCore, or Custom.
  4. Select the Robot Code or SystemCore NT server target.
  5. 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).

Elastic Compatibility

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.

Project Structure

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

Documentation

Status

Flexure is under active development. The current focus is reliable competition use, complete Elastic behavior compatibility, robust recording and replay, and efficient dashboard editing.

License

Flexure is released under the MIT License. Third-party software, assets, and compatibility references retain their respective licenses; see THIRD_PARTY_NOTICES.md.

Disclaimer

Flexure is an independent project. It is not affiliated with or endorsed by FIRST, WPILib, or Gold872/Elastic.

About

A free-form NetworkTables dashboard for FRC, built for competition layouts, robot tuning, field visualization, and replay.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages