Release Date

This release provides support for recodeable root components, and a range of library updates and bug fixes.


  • Added root:custom (Custom root), a recodeable root type. This is part of moves to finish making everything recodeable. Using the @Driver annotation on a proxy interface it's possible to drive the root and its contained graph of components from an external callback. See use of this in the code roots testsuite test - more info to follow.
  • Improved root delegate API and thread context, with some concurrency improvements and monotonic clock fixes that should benefit all root types. Ensure pending calls are handled when a root is terminated.
  • Updated libP5X to 0.353.0-beta-4 and LWJGL 3.3.2, with fix for memory leak when stopping and restarting video pipelines.
  • Updated Ivy to 2.5.1 (security update - fixes warning, although never exploitable in PraxisCORE code)
  • Updated JNA to 5.13.0.


  • Updated base IDE to Apache NetBeans 17.
  • Added container actions to the scene background popup menu - access to code editing for custom root, but also any actions exposed by roots or custom containers.
  • Speed up project builds at UI side by ensuring UI poll is triggered on call receipt (response) rather than on timer.
  • Ensure root annotations are set in graph build (eg. show all properties not being set on load).