PraxisLIVE for MAC

v 5.3.0
Category  Developer Tools

PraxisLIVE mac screenshot NaNPraxisLIVE mac screenshot NaNPraxisLIVE mac screenshot NaNPraxisLIVE mac screenshot NaNPraxisLIVE mac screenshot NaNPraxisLIVE mac screenshot NaNPraxisLIVE mac screenshot NaN

About PraxisLIVE For MAC

PraxisLIVE is a visual programming environment that combines live and virtual programming for students, programmers, creatives, and tinkerers.

PraxisLIVE combines intuitive visual node editing with a range built-in components for audio & visual processing. It also includes an embedded compiler editor and editor for live-coding Java Processing and GLSL.

PraxisCORE is a modular JVM runtime that supports cyberphysical programming. It is the basis of PraxisLIVE. PraxisCORE is a distributed forest of actors architecture that supports runtime code changes, comprehensive introspection and extensive Erlang, Smalltalk, and Extempore elements. It's a powerful platform for media processing and data visualisation.

The software is free but it is donationware. To support development, please consider donating.

Download PraxisLIVE For MAC

Whats New

Version 5.3.0:

PraxisCORE runtime:
  • Added support for recodeable proxy interfaces. The interface reference is carried across code changes and automatically wraps the implementation so that the reference can be safely passed to other code while remaining updateable. See usage instructions below for more.
  • Added support for persistent fields that retain their value across code changes but are not automatically injected. For select and careful use!
  • Added support for reference providers in @Inject annotations so that arbitrary types can be injected while controlling Ref handling in a central place (eg. in shared code). See below.
  • Added a default reference provider, with initial support for List, Set and Map. These can now be used directly as an injected field type - eg. @Inject List lines. They are implemented by ArrayList, LinkedHashSet and LinkedHashMap respectively. This can be overridden by providing a custom provider.
  • Added a basic logging provider to log to System.err when running from CLI.
  • FIX : ensure JLine terminal IO doesn't break when hub is restarted by splitting out and persisting the terminal IO across runs.
  • Updated base IDE to Apache NetBeans 12.4, with support for JDK 16.
  • Updated bundled JDK to JDK 16.
Proxy interfaces:
  • Proxy interfaces are defined by fields, and are most easily used with lambdas or method references. Unusually for PraxisCORE annotated fields, the value requires initialization.
  • It's important to be aware that the initialized value of the field will be wrapped by the proxy before init() or any other code is called. Setting the field value after this point will not work as expected.
  • It's also important to note that the interface will be called on the root thread, blocking the calling thread. This makes it safe to call functions and send messages. Support for running on the calling thread will follow in a future release.
Persistent fields:
  • Persistent fields allow for field values to be carried over from one iteration of code to the next. Unlike injected fields, persistent fields are not automatically set. They are most useful for temporary values.
  • Persistent fields are reset to default values (eg. 0 or null) when the root is restarted, unless the autoReset value of the annotation is set to false. Like Ref values, any AutoCloseable values will be closed when removed or reset unless the autoClose value of the annotation is set to false.
Inject Ref providers:
  • Ref providers allow for custom field types to be injected without requiring the field itself to be of type Ref. Instead, a Ref.Provider class, usually in shared code, can manage initialization of the Ref in one place. All of the features of Ref (except async) can be used in the provider to control what happens on reset and disposal.