High-performance, next-generation visualization for FIRST Robotics Competition data.
FRC Visualizer is built from the ground up to provide a smooth, low-latency interface for monitoring and analyzing robot data. By leveraging a Godot 4 frontend and a Rust-powered GDExtension backend, it achieves unmatched performance and memory efficiency.
demo1.mp4
3D Field View: Shows game pieces, robot pose, swerve states, and the full UI.
- 🏎️ Extreme Performance: Data layer implemented in Rust with a columnar ring buffer for zero-allocation history tracking.
- 🕒 Time Travel: Scrub through recorded session data with a high-fidelity timeline, zoom support, and live-tracking sticky-scroll.
- 📊 Dual Views: Seamlessly switch between 2D Field and 3D Field visualizations.
- 🛠️ Live Tuning: Dedicated tuning topics supporting AdvantageKit's LoggedTuning paradigm.
- 🌐 NT4 Support: Full support for NetworkTables 4, including structured data, arrays, and schema-based decoding.
- 🚀 Multithreaded Networking: Dedicated background thread for NT4 synchronization using
tokioandnt_client.
demo2.mp4
2D Field View: Shows game pieces, robot pose, and swerve states in a top-down view.
- Frontend: Godot 4.3+ (Forward+ Renderer)
- Backend (GDExtension): Rust via
godot-rust - Networking:
nt_client(Pure Rust NT4 implementation) - Concurrency:
tokiofor async I/O.
- Rust (latest stable or 2024 edition)
- Godot Engine 4.3+
-
Clone the repository:
git clone https://github.com/reecelikesramen/frc-visualization.git cd frc-visualization -
Build the Rust GDExtension:
cd nt4_logging cargo buildNote: This will generate the shared library for your OS and place it in
godot/bin/where Godot expects it. -
Open the project in Godot:
- Launch Godot 4.3+.
- Import the project from the
godot/directory. - Press F5 (or the Play button) to run the visualizer.
- Real-time & Recorded NT4 data visualization
- Timeline scrubbing & history replay
- High-performance 2D/3D field views
- Structured data (structs) support
- Automatic UI state persistence
- Custom Robot Models: Load your team's specific GLB/OBJ models.
- Plugin System: Build custom visualizers and views.
- Log File Support: Direct reading and exporting of standard robot log formats.
- Command Hierarchy: Visualize the active robot command tree.
- nt_client - High-performance NT4 client library.
- AdvantageScope - The inspiration for this modern take on FRC visualization.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.