#ReleaseSunday ๐ŸŽ‰ Quite a few https://thi.ng/column-store updates over the past month, including further performance optimizations, more tests and documentation updates...

Just also added a small section and diagram illustrating the extensive use of bit-fields and bitmap-based indexes to optimize query processing and the stepwise narrowing of result sets in multi-term queries. Depending on column configuration and query term/operator type, individual rows often do not need to be visited/checked at all (only their bitfields are combined). But even if a traversal is necessary, the use of bitfields allows the engine to only having to check rows which have already been pre-selected by previous terms in the query. Apart from some exceptions, no interim result arrays are created. Queries are also short circuiting, i.e. terminate the moment a sub-term does not produce any results...

Happy coding! :)

#ThingUmbrella #Database #Query #Optimization #Bitfield #OpenSource #TypeScript #JavaScript

#ReleaseSunday and already second #GenArtAPI update this week, plus the addition of a new platform adapter package for publishing artwork to https://editart.xyz (ready ahead of #Genuary2025 ๐Ÿ˜‰)... (cc/ @pifragile)

This new release (all packages at v0.19.0 now) also includes several updates to API docs and adapter readme's:

- https://github.com/thi-ng/genart-api
- https://github.com/thi-ng/genart-api/tree/main/packages/adapter-editart
- https://github.com/thi-ng/genart-api/tree/main/packages/adapter

All implementations are WIP (but fully functional, to the best of my knowledge!). If there's demand, I'm considering adding more parameter type adaptations also for the EditArt adapater (e.g. to support vector/XY params, as already done for the Layer adapter...)

Since I've been told "people/artists don't read anymore", tonight I'm starting to record a video walkthrough, wish me luck! :)

#GenerativeArt #Art #OpenSource #Parameters #Interoperability #TypeScript #JavaScript

EditArt

EditArt - co-create a piece of generative art along with the artist.

What follows #ReleaseSunday? #ReleaseMonday of course!

The new additions are mainly what was mentioned in my previous toots of the past 24h:

https://thi.ng/color
Configurable CSS default conversions/serializations (e.g. `CSS_LEVEL3` [initial default] vs `CSS_LEVEL4` [supported])

https://thi.ng/transducers
Added `syncTuples()` transducer, a useful companion (post-processing step) for `multiplex()` transformation pipelines

#ThingUmbrella #OpenSource #TypeScript

Array-based color types, CSS parsing, conversions, transformations, declarative theme generation, gradients, presets

thi.ng/color

#ReleaseSunday โ€” New major updates & additions to the https://thi.ng/wasm-api set of libraries to build hybrid WebAssembly (mainly via Zig) & TypeScript apps:

- new WebGL bridge module https://thi.ng/wasm-api-webgl to interface Zig/WASM with https://thi.ng/webgl (work-in-progress, only most important features supported so far, see example below)
- improved, declarative child API module system w/ dependency graph resolution and module initialization in correct order
- new options for the polyglot bindings code generator (https://thi.ng/wasm-api-bindgen) to omit unneeded parts in the generated code
- updated the TypeScript codegen to produce smaller code w/ better re-use
- updated/extended docs

Please see readme's and changelogs and updated Zig examples for further details...

Also included, a new minimal example to show basic usage of the new WebGL bindings (incl. shader & texture definition, geometry/attribute buffers, instancing, uniform updates etc.)

Demo:
https://demo.thi.ng/umbrella/zig-webgl/

Source code:
https://github.com/thi-ng/umbrella/tree/develop/examples/zig-webgl

(main source code is in the /zig folder...)

#ThingUmbrella #WebAssembly #WASM #Zig #Ziglang #WebGL #OpenSource #TypeScript

Generic, modular, extensible API bridge and infrastructure for hybrid JS & WebAssembly projects

thi.ng/wasm-api

Today's #ReleaseSunday features a major update for the https://thi.ng/meta-css toolchain, a data-driven codegen for creating custom modular CSS frameworks, incl. transpiler, bundler, dev/watch mode...

The new version supports callable parametric templates, which not only help to reduce the overall API surface (i.e. the total number of rules) of a generated CSS framework, but also enable advanced operations like those shown in the attached images (e.g. declarations of CSS color variables (in rgb, hsl, lch, or oklch modes) and pure CSS color per-color-channel adjustments...).

Also new, is added support for documentation metadata for all generative CSS class & template specs (incl. template params). Parts of the readme are generated from these embedded docs and the next version will include a new CLI command to generate Markdown files from/for these CSS docs...

The readme for this package is already pretty detailed by now and should cover most important patterns and usage (incl. the new template features). Take a look (also the examples linked from the readme)!

https://github.com/thi-ng/umbrella/blob/develop/packages/meta-css/README.md

#ThingUmbrella #CSS #Frontend #Transpiler #Bundler #Color #CLI #OpenSource

Open source building blocks for computational design. Est. 2006

thi.ng is a set of ~350 complementing code libraries & projects, a long-term effort devoted to Computational Design and Art in its many forms.

thi.ng

Btw. It was also #ReleaseSunday yesterday and as a direct & immediate result from a good criticism received via the community survey, I've updated all 350+ code snippets in 275+ source files/docs of all 190 https://thi.ng/umbrella libraries. Each snippet now includes imports for all functions/constants used, incl. those from other packages (if there are)... The updated docs have also been published on https://docs.thi.ng/. Hope that helps! If you do run into any mistakes & omissions, please get in touch! ๐Ÿ™

Obviously, this doesn't fix other issues with the docs, but many of them are the result of other fundamental issues with TypeDoc & TypeScript's language server (e.g. treating arrow functions and/or functions annotated with type aliases as 3rd class citizens). I do not have the bandwidth to re-organize a massive project like this around the quirks/bugs of 3rd party infrastructure, but I'm always open to suggestions for how the situ can be improved... Many times I've been pondering and even starting work on a custom doc generator (incl. a ton more metadata, diagrams, cross-references, links to related functions [in other packages]), but I just cannot justify working on this at this stage...

#ThingUmbrella #Documentation #OpenSource #TypeScript

(Reposting, accidentally deleted...) Last day of the year, last #ThingUmbrella #ReleaseSunday of the year!!!

Firstly, my deep, deep gratitude and thanks to everyone who's been supporting the project and my work over the past year(s), especially fellow fedi people: @avi, @jeffpalmer, @guidoschmidt, @made, @lurvey, @daeinc, @Yura, @n_senz_, @dawid and others (pls forgive non-exhaustive list!).

Thank you, thank you! ๐Ÿ™๐Ÿ˜

#ThingUmbrella #OpenSource #Gratitude #ProjectStatistics #YearInReview #IndyDev #Fundraising

1/3

#ReleaseSunday ๐Ÿš€ Just pushed new versions with new features in the following packages:

https://thi.ng/rdom โ€” Pre-existing DOM elements can now be part of a component tree given to `$compile()`. Such elements will be attached to the correct parent node at mount time (i.e. useful for pre-loaded images or canvases)

http://thi.ng/pixel โ€” Added size/area checks for `.getRegion()`, returning `undefined` if target region is small than 1 pixel

http://thi.ng/color โ€” Updated `temperatureMat()` to accept 2 params, i.e. to control blue/yellow and green/magenta tint

Also added a new example (see follow up toot) and added features to some existing ones:

https://demo.thi.ng/umbrella/scenegraph-image/ โ€” Added bicubic sub-pixel sampling for much smoother image-based geometry displacements

https://demo.thi.ng/umbrella/pixel-colormatrix/ โ€” Added new color temperature controls and A/B split preview (click & drag canvas to adjust split position, only visible once there're adjustments...)

#ThingUmbrella #TypeScript #JavaScript #OpenSource #Release

Testing, testing, testing... learning, tweaking, learning, tweaking...! How was your Sunday?! :)

Btw. It's #ReleaseSunday and these aforementioned updates to https://thi.ng/axidraw (major update, potentially breaking changes) and https://thi.ng/geom-axidraw (support for non-pen drawing utensils) are all out and about now (for the past 6h or so...)

#ThingUmbrella #WaterColor #PenPlotter #AxiDraw

#ReleaseSunday Lots of updates to various #ThingUmbrella packages, incl. new features, bug fixes (e.g. new SortedMap [skip list] implementation for https://thi.ng/associative), doc updates, maintenance. Please see direct links to change logs here:

https://github.com/thi-ng/umbrella/blob/develop/README.md#latest-updates

Btw. Also finally wrote a script to generate/automate this "latest changes" table, obviously by "dogfooding" a bunch of umbrella packages to do so. If you're interested, look here:

https://github.com/thi-ng/umbrella/blob/develop/tools/src/latest-changes.ts

#OpenSource #TypeScript