Our great sponsors
-
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.
-
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.
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.
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.
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.
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.
Related posts
- Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
- Outperforming Rust DNA sequence parsing benchmarks by 50% with Mojo
- Any way to monitor JavaFX thread
- How to use the JavaFX library Medusa to display weather data
- I like to discuss ui frameworks for java backend?