If you're like me and have been publishing your computational/code-based/parametric/generative art for a long time, you'll likely have run into issues of having to revisit and re-edit/re-configure your pieces for different usage scenarios (e.g. preparing for an exhibition), which can become quite time-consuming & annoying for those pieces which originally had been created for a single publishing platform only (e.g. fxhash, highlight, etc.) and whose integration mechanics become a hindrance for such repurposing (or have changed themselves in the meantime and require updating)...
For that reason (and several other sanity-related aspects), over the past 6 months I've been refactoring most of my own pieces from the past 3-4 years to use a new platform independent API to deal with all parameter related aspects, obtaining/seeding PRNGs, configuring resolutions, time providers/schedulers (e.g. for realtime/non-realtime animation), transport control (i.e. start/stop/resume), exposing "art features" (e.g. for rarity calculation), triggering preview/thumbnail generation etc.
Now my art works only depend on this generalized API and any platform-specifics can be injected via small "platform plugins" (which means simply adding another script tag to your HTML)
I wrote about this all a few months ago already, but just added a first tiny public example, started updating the project Readme and also been doing some more documentation work on this x-platform API & workflow options.
The benefit to artists working in this field is very clear to me already, but also publish platforms/markets can benefit from adopting (and helping to shape) this API more (with very little integration effort required on their end). Mostly they'd just need some minor glue code, event handlers for their platform-specific param encoding/decoding. On the other hand, they can delegate things like param validation, coercion, randomization etc.
If you want to have an early look at the example:
https://demo.thi.ng/umbrella/genart-api/
- the "art" running in an iframe has zero knowledge of anything other than the x-platform API
- some of the supported param types have no GUI widget in this demo
- the GUI widgets are auto-generated from exposed param specs
- updating widgets and propagating these changes is done via IPC messages (via the genart API)
- not all features are shown in this example!
Repo:
https://thi.ng/genart-api
Since I've been working on a bunch of other things, progress on this has rather been slow, but I'll be actively looking for feedback and will post another update once I'm more ready to receive/address this...