Visualizing Robots with JavaFX

This page summarizes the projects mentioned and recommended in the original post on /r/JavaFX

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • afterburner.fx

    The Opinionated Un-Framework For Java FX Applications

  • The complex views are all built in FXML + CSS, but some of the simple views like charts are created programmatically. Different parts of the UI communicate via injected state using afterburner.fx for DI. We haven't run into any performance issues with FXML.

  • ChartFx

    A scientific charting library focused on performance optimised real-time data visualisation at 25 Hz update rates for data sets with a few 10 thousand up to 5 million data points.

  • The charts are done with Chart-FX and a customized renderer. The live charts handle >20Khz of incoming data, and the offline charts can deal with multi-million data points. User defined equations in custom XML plots are compiled to Java using the Jshell API.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • FXyz

    A JavaFX 3D Visualization and Component Library

  • The CAD models are slightly simplified versions of our machining models and exported as OBJ. They are more complex and produce more artifacts than hand-crafted models, but with instance sharing it's no issue to display hundreds of actuators simultaneously. Most of the models are 1-10MB, but the Hexapod chassis at the end is an unmodified export with ~150MB. The models are loaded using the OBJ loader bundled with FXyz.

  • Disruptor

    High Performance Inter-Thread Messaging Library

  • We ended up writing having the acquisition thread write the data into a Disruptor, and read it into the UI thread using an EventPoller with an AnimationTimer that polls once per frame. This automatically handles smart batching (get any data that came in since the last frame) and gets rid of all synchronization mechanisms in all the other data structures.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts