Skip to content

High performance FRC visualizer operating over NetworkTables written in Godot

License

Notifications You must be signed in to change notification settings

reecelikesramen/frc-visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 FRC Visualizer

High-performance, next-generation visualization for FIRST Robotics Competition data.

Build and Export Godot Rust License

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.


✨ Features

  • 🏎️ 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 tokio and nt_client.

demo2.mp4


2D Field View: Shows game pieces, robot pose, and swerve states in a top-down view.


🛠️ Tech Stack


🚀 Getting Started

Prerequisites

Local Development Setup

  1. Clone the repository:

    git clone https://github.com/reecelikesramen/frc-visualization.git
    cd frc-visualization
  2. Build the Rust GDExtension:

    cd nt4_logging
    cargo build

    Note: This will generate the shared library for your OS and place it in godot/bin/ where Godot expects it.

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

🗺️ Roadmap

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

🤝 Credits

  • nt_client - High-performance NT4 client library.
  • AdvantageScope - The inspiration for this modern take on FRC visualization.

📄 License

This project is licensed under the Apache-2.0 License - see the LICENSE file for details.

About

High performance FRC visualizer operating over NetworkTables written in Godot

Resources

License

Stars

Watchers

Forks

Packages

No packages published