lingo.lol is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for linguists, philologists, and other lovers of languages.

Server stats:

66
active users

#genartapi

0 posts0 participants0 posts today
Karsten Schmidt<p>New release of <a href="https://thi.ng/genart-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/genart-api</span><span class="invisible"></span></a> (v0.24.0) — a platform-independent extensible API for browser-based computational/algorithmic/generative art projects:</p><p>This release contains quite a few new features, as well as several important fixes for bugs which were accidentally introduced in the two most recent versions...</p><p>- extracted the debug time provider &amp; FPS overlay to separate package<br>- updated `bigint` param handling (esp. randomization)<br>- added `collector` and `iteration` metadata accessors<br>- updated platform adapters (esp. the <a href="https://mastodon.thi.ng/tags/fxhash" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fxhash</span></a> one)<br>- fixed image &amp; ramp param handling<br>- added a bunch of utilities to core API to deduplicate code in various adapters<br>- updated/fixed examples &amp; docs<br>- added more tests (and updated core API to be more testable outside the browser)</p><p>All changes since v0.21.0:<br><a href="https://github.com/thi-ng/genart-api/compare/v0.21.0...v0.24.0" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/genart-api/c</span><span class="invisible">ompare/v0.21.0...v0.24.0</span></a></p><p>🎉</p><p><a href="https://mastodon.thi.ng/tags/GenArtAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenArtAPI</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Parameters" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Parameters</span></a> <a href="https://mastodon.thi.ng/tags/Interoperability" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Interoperability</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>
Karsten Schmidt<p><a href="https://mastodon.thi.ng/tags/ReleaseFriday" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ReleaseFriday</span></a> (1st release cycle of 2025) 🎉 — New additions &amp; updates to <a href="https://thi.ng/genart-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/genart-api</span><span class="invisible"></span></a>, a platform-independent extensible API for browser-based computational/algorithmic/generative art projects:</p><p>- Added <a href="https://fxhash.xyz" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">fxhash.xyz</span><span class="invisible"></span></a> platform adapter (incl. support &amp; adaptations for 10 of the 17 built-in GenArtAPI param types)<br>- Added `bigint` &amp; `binary` data param types<br>- Updated parameter type definitions &amp; factories (date, datetime, time, numlist, strlist, text, vector)<br>- Ensure any given default values are valid (and can be coerced)<br>- Added MurmurHash3 (128 bit version) functions (e.g. seed PRNGs)<br>- Added tests for all parameter types (factory functions &amp; implementations)<br>- Added tests for utility functions<br>- Added GitHub actions (running tests)<br>- Various API docs updates, clarifications &amp; fixes<br>- Update/refactor EditArt &amp; Layer platform adapters<br>- Updated main &amp; adapter readmes</p><p>New adapter package `@genart-api/adapter-fxhash`:<br><a href="https://github.com/thi-ng/genart-api/tree/main/packages/adapter-fxhash" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/genart-api/t</span><span class="invisible">ree/main/packages/adapter-fxhash</span></a></p><p>Commits since last release:<br><a href="https://github.com/thi-ng/genart-api/compare/v0.20.0...v0.21.0" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/genart-api/c</span><span class="invisible">ompare/v0.20.0...v0.21.0</span></a></p><p><a href="https://mastodon.thi.ng/tags/GenArtAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenArtAPI</span></a> <a href="https://mastodon.thi.ng/tags/ComputationalArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ComputationalArt</span></a> <a href="https://mastodon.thi.ng/tags/AlgorithmicArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AlgorithmicArt</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Parameters" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Parameters</span></a> <a href="https://mastodon.thi.ng/tags/Interoperability" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Interoperability</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/Genuary" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Genuary</span></a></p>
Karsten Schmidt<p>Just been having a long interesting conversation about how <a href="https://thi.ng/genart-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/genart-api</span><span class="invisible"></span></a> can also become very interesting from a digital preservation perspective:</p><p>Right now a lot of contemporary browser-based computational/generative art pieces are somewhat bound to the lifespan of the art platforms/websites they've been published at/for (irrespective if the pieces themselves are hosted on IPFS or similar supposed longer-term storage). Most of these works are coded ad-hoc against the APIs provided by these respective individual platforms, each only optimizing for their own uses/biases. However, developing/refactoring such works to use an open source platform-independent API (i.e. <a href="https://mastodon.thi.ng/tags/GenArtAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenArtAPI</span></a>) with any platform specifics handled via very easy-to-replace (and to develop) plugins/adapters, then at least potentially extends the lifespan &amp; adaptability of these works by making it much easier to migrate them to new platforms/environments/emulators. In most cases, this migration can be done purely via configuration (replacing a couple of library `&lt;script&gt;` tags in the HTML wrapper), rather than having to make any code changes in the artwork itself.</p><p>(All this is acknowledging, but also ignoring here the much larger looming preservation issue related to the general dependency on web browsers and bitrotting web tech... Still every little helps! 😉)</p><p><a href="https://mastodon.thi.ng/tags/DigitalPreservation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DigitalPreservation</span></a> <a href="https://mastodon.thi.ng/tags/Adaptation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Adaptation</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a></p>
Karsten Schmidt<p>Various <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> and <a href="https://mastodon.thi.ng/tags/GenArtAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenArtAPI</span></a> updates from this week:</p><p>- Added null pointer checks &amp; guards in <a href="https://thi.ng/wasm-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/wasm-api</span><span class="invisible"></span></a>. This also includes support for structs with fields using Zig-style optional pointers.<br>- Updated the <a href="https://thi.ng/wasm-api-bindgen" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/wasm-api-bindgen</span><span class="invisible"></span></a> code generator for <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> to produce smaller code for structs using many string fields<br>- Did major ground work on <a href="https://mastodon.thi.ng/tags/Zig" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Zig</span></a> <a href="https://mastodon.thi.ng/tags/WebAssembly" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebAssembly</span></a> bindings of core <a href="https://thi.ng/genart-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/genart-api</span><span class="invisible"></span></a> functionality (see small demo below)<br>- Fixed/updated/simplified time provider logic<br>- Updated the debug time provider with its FPS analytics/visualization overlay, now computing moving min/max and moving average (default period = 200 frames) and the viz is dynamically/smoothly rescaling to current peak<br>- Released new GenArtAPI v0.9.0</p><p>As for the Zig/WASM example: This is only interesting from a technical POV, no visuals here! All canvas drawing and parameter declarations/evaluations are done via Zig, using the aforementioned <a href="https://thi.ng/wasm-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/wasm-api</span><span class="invisible"></span></a> infrastructure to provide a new API module which can be seamlessly used with the other hybrid WASM API modules, here for DOM creation (<a href="https://thi.ng/wasm-api-dom" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/wasm-api-dom</span><span class="invisible"></span></a>) and to handle Canvas2D drawing (<a href="https://thi.ng/wasm-api-canvas" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/wasm-api-canvas</span><span class="invisible"></span></a>).</p><p>At the moment, this GenArtAPI WASM module is still a fixed part of this example, but will eventually be extracted &amp; distributed as separate package.</p><p>Demo (with param editor):<br><a href="https://demo.thi.ng/genart-api/param-editors/?url=https://demo.thi.ng/genart-api/zig-test/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/genart-api/param-e</span><span class="invisible">ditors/?url=https://demo.thi.ng/genart-api/zig-test/</span></a></p><p>Choose one of the two GUI implementations, then make any parameter changes and you should see the new values applied immediately (btw. the demo is likely not very usable on mobile)...</p><p>Source code (TypeScript in `/src`, Zig in `/zig` directories):<br><a href="https://github.com/thi-ng/genart-api/tree/main/examples/zig-test/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/genart-api/t</span><span class="invisible">ree/main/examples/zig-test/</span></a></p><p><a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/ArtMaking" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ArtMaking</span></a> <a href="https://mastodon.thi.ng/tags/Interop" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Interop</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Workflow" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Workflow</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>
Karsten Schmidt<p>Lots of new <a href="https://mastodon.thi.ng/tags/GenArtAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenArtAPI</span></a> updates this week (and still hoping for some constructive feedback by fellow generative artists, also for RFCs in the repo's issue tracker):</p><p>- lots of documentation additions/updates (README, diagrams and API docs)<br>- update message protocol and add message types/docs for handling resizing &amp; frame events<br>- update param editors (e.g. "apply" button for randomized defaults, timecode display, open variation in new window)<br>- update/extend reference platform adapter implementation<br>- update examples<br>- add new <a href="https://mastodon.thi.ng/tags/p5js" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>p5js</span></a> example project (see link below)<br>- add bare-bones project template<br>- released 3 versions of the @thi.ng/genart-api package this week (latest v0.5.0)<br>- 200+ commits by now</p><p>Some pre-configured versions of the new p5.js example (incl. editor):</p><p>- <a href="https://demo.thi.ng/genart-api/param-editors/?url=https://demo.thi.ng/genart-api/p5-basic/%3fstroke=f4e199%26fill=f45706%26bg=39d9d7%26radius=1.00%26scaleX=0.0020%26scaleT=0.0006" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/genart-api/param-e</span><span class="invisible">ditors/?url=https://demo.thi.ng/genart-api/p5-basic/%3fstroke=f4e199%26fill=f45706%26bg=39d9d7%26radius=1.00%26scaleX=0.0020%26scaleT=0.0006</span></a><br>- <a href="https://demo.thi.ng/genart-api/param-editors/?url=https://demo.thi.ng/genart-api/p5-basic/%3fstroke=f7efef%26fill=070000%26bg=060700%26radius=0.70%26scaleX=0.0030%26scaleT=0.0003" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/genart-api/param-e</span><span class="invisible">ditors/?url=https://demo.thi.ng/genart-api/p5-basic/%3fstroke=f7efef%26fill=070000%26bg=060700%26radius=0.70%26scaleX=0.0030%26scaleT=0.0003</span></a></p><p>Project repo:<br><a href="https://github.com/thi-ng/genart-api" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/thi-ng/genart-api</span><span class="invisible"></span></a></p><p><a href="https://mastodon.thi.ng/tags/GenArtAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenArtAPI</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/ArtMaking" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ArtMaking</span></a> <a href="https://mastodon.thi.ng/tags/Interop" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Interop</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Workflow" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Workflow</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>