@toxi@mastodon.thi.ng
@toxi@mastodon.thi.ng avatar

toxi

@toxi@mastodon.thi.ng

Interdisciplinary open so(u)rcery, computational art/craft/design, landscape photography, electronic music, education. See pinned toots for more info!

Unless stated otherwise, all published images/media (except boosts/linked content) is my own work & copyright by me. Inclusion in AI models strictly forbidden.

Available for consulting/commissions. Searchable.

he/him

#ThingUmbrella #GenerativeArt #LandscapePhotography #TypeScript #ZigLang #WebAssembly #Clojure #Forth #GLSL #Houdini #DigitalFabrication #Geometry #CellularAutomata #EvolutionaryComputing #PermaComputing #AxiDraw #DSP #Synth #Music4Coding #Hiking #Nature

This profile is from a federated server and may be incomplete. Browse more on the original instance.

toxi, to Germany
@toxi@mastodon.thi.ng avatar

Choose Life.
Choose a job.
Choose a career.
Choose a family.
Choose a fucking big television, choose washing machines, cars, compact disc players and electrical tin openers.
Choose good health, low cholesterol, and dental insurance.
Choose fixed interest mortgage repayments.
Choose a starter home.
Choose your friends.
Choose leisurewear and matching luggage.
Choose a three-piece suit on hire purchase in a range of fucking fabrics.
Choose DIY and wondering who the fuck you are on Sunday morning.
Choose sitting on that couch watching mind-numbing, spirit-crushing game shows, stuffing fucking junk food into your mouth.
Choose rotting away at the end of it all, pissing your last in a miserable home, nothing more than an embarrassment to the selfish, fucked up brats you spawned to replace yourselves.

Choose your future.
Choose life…

— Irvine Welsh, Trainspotting

Also: #Europawahl #Germany #GenZ #Disappointed

toxi, to random
@toxi@mastodon.thi.ng avatar

Btw. Wahltag heute! Macht mit!!! ✅ #NoAfD

toxi, to photography
@toxi@mastodon.thi.ng avatar
toxi, (edited ) to art
@toxi@mastodon.thi.ng avatar

If you happen to be in Basel from June 10-16 for Art Basel, you can snap up one of 20 unique prints of my C-SCAPE endlessly evolving muti-cellulluar automata collection at The Digital Art Mile @ Space31, Rebgasse 31.

Just find the Generative Art kiosk organized & hosted by the fxhash team. The kiosk features a huge 86" screen showcasing realtime versions of generative art projects and single edition prints by 16 artists.

A small preview selection of C-SCAPE prints (30x30cm, 400g paper, high resolution) on offer (without watermark, of course)...

#CSCAPE #Art #GenerativeArt #ArtBasel #Prints #Exhibition #Basel #Switzerland #CellularAutomata

toxi,
@toxi@mastodon.thi.ng avatar

@robertoranon Thank you, Roberto! It's been actually always quite hard to select some interesting stills/crops, since for me the real beauty is in the constantly evolving nature of the realtime version, and I also much prefer a cinematic aspect ratio for this piece... Also technically, the sim just needs more horizontal space (pixels) and a long vertical actually has a bad aesthetic influence on the overall results... (IMO)

toxi,
@toxi@mastodon.thi.ng avatar

@nclslbrn Thank you & yeah, would be nice if it'd be on for a bit longer since I'm tempted to go myself, but also still undecided (it's only just over 3h from here)... at least this part is on until next Friday, so let's see...

toxi, to typescript
@toxi@mastodon.thi.ng avatar

Example #167, and the very first example showing basic usage of the new https://thi.ng/geom-webgl interop package (still unreleased): Parsing a SVG path, sampling it with uniform vertex density (configurable), converting it into a complex polygon (w/ holes) and then into WebGL buffers (w/ vertex color option enabled), randomizing colors via probabilistic color theme, and — finally — drawing it all...

Demo (reload for new variation):
https://demo.thi.ng/umbrella/geom-webgl-basics/

Source code:
https://github.com/thi-ng/umbrella/blob/develop/examples/geom-webgl-basics/src/index.ts

#ThingUmbrella #WebGL #SVG #Geometry #Tessellation #Triangulation #DebugArt #TypeScript #Typography #Polygon
#ThingUmbrella

toxi,
@toxi@mastodon.thi.ng avatar

Btw. More background details about this ongoing work in this thread: https://mastodon.thi.ng/@toxi/112564848531261742

toxi, to random
@toxi@mastodon.thi.ng avatar

Looong, slooow, deeeep, hypnoootic, splendiiid... 🫠🎧

Noah Lyas & Eafhm - Near The Horizon (2023)
https://yt.artemislena.eu/watch?v=lES_lvZHpKg

toxi, to opensource
@toxi@mastodon.thi.ng avatar

Since I've just been asked again why some of the https://thi.ng/umbrella examples in the repo are not working when copy/pasting the source code into a new (external, I assume) project — there could be several reasons...

  1. The default branch of the repo is develop and usually does contain code which hasn't been released yet (as library/package). If in doubt, please switch to the main branch which contains the state as of the most recent release cycle...

  2. Related to #1, there could be breaking API changes on the develop branch (as is the case for the current major undertaking of thi.ng/geom v8.0.0) and some of the examples are already using the new/upcoming API...

  3. Rare, but possible, I've forgotten to declare dependencies for an example and you might encounter broken imports. Since 2022 I've got a custom tool to verify imports and exports of all packages and examples (and which is run prior to each release), so this shouldn't happen anymore...

  4. Personally, I'm only using a bundler setup/workflow (@vite) and had zero problems in the past few years. However, some people using ESM imports directly have been encountering weird issues with some transpilation features of JS CDNs (e.g. skypack) in the past, but these shouldn't happen with more modern ones like https://esm.run.

Finally, all packages have a generally uniform readme structure, incl. "install/import instructions". For examples, there're also these wiki pages:

General:
https://github.com/thi-ng/umbrella/wiki/Example-build-instructions

For examples added since late 2023:
https://github.com/thi-ng/umbrella/wiki/Development-mode-for-examples-using-thi.ng-meta%E2%80%90css

#ThingUmbrella #Documentation #Examples #OpenSource #TypeScript #JavaScript #ESM

toxi, to zig
@toxi@mastodon.thi.ng avatar

Congrats to @andrewrk & team to the new Zig v0.13.0 release! So exciting! 🚀🤩

Thankfully there were only very minor changes to be done on my end this time around, and I've just updated the build file & readme for https://thi.ng/wasm-api to be compatible with this new Zig version (the older build files are still kept around for those who might need it...). Also tested all the bundled examples, all working fine!

#ThingUmbrella #Zig #Ziglang #WASM #TypeScript #OpenSource

toxi, to random
@toxi@mastodon.thi.ng avatar

Good night with the beautiful Rising Moon, the second collab album by Martin Goodwin & Infinity (the entire piece is warmly recommended):

https://agardenofsound.bandcamp.com/album/rising-moon

toxi, to typescript
@toxi@mastodon.thi.ng avatar

Testing/debugging the dynamic tessellation feature of the upcoming thi.ng/geom-webgl interop package... This will provide a single polymorphic function to convert https://thi.ng/geom shapes into WebGL binary data & model/attribute specs, with lots of options for memory layout, indexing, instancing and other advanced usage...

By default (and as shown here), polygons are tessellated via ear cutting[1], but users have a choice of 9 other algorithm presets (or their own custom ones), incl. iterative application of multiple tessellation strategies..

[1] https://en.wikipedia.org/wiki/Polygon_triangulation

A random, blobby, triangulated polygon, with each triangle tinted in a random colorful gradient
A random, blobby, triangulated polygon, with each triangle tinted in a random colorful gradient
A random, blobby, triangulated polygon, with each triangle tinted in a random colorful gradient

toxi,
@toxi@mastodon.thi.ng avatar
toxi,
@toxi@mastodon.thi.ng avatar

As part of the work on the upcoming thi.ng/geom-webgl package, today I've also been completely rewriting all tessellators in https://thi.ng/geom-tessellate and extending the package with more features, incl. an adapted version of https://github.com/mapbox/earcut to handle complex polygons (with holes, but can also be combined/nested with all the other tessellators, incl. the non-triangular ones)...

Instead of producing an array of faces (each itself an vertex array), all tessellators are now producing/populating/adding to a single tessellation, consisting of a vertex array and another array of face vertex IDs. This makes the result much more flexible for a number of use cases, incl. WebGL/WebGPU conversion.

Very happy with how the new API for both packages is turning out. The last image shows the source code for generating a single frame of the "SB" anim, starting with parsing two SVG paths, grouping & fitting them into a target bounding rect, then tessellating the entire group, rebuilding a new group from the resulting triangles, and finally serializing everything to SVG. For WebGL, there'll be a single asWebGLModel() function which performs shape tessellation automatically behind the scenes (fully configurable, though)...

The letter "B" tessellated into dozens of triangles, each tinted with a randon, iridescent, rainbow colored gradient
TypeScript source code snippet to create a single frame of the anim in the previous image: // create paths/shapes from SVG definitions (truncated here) const S = pathFromSvg(

Animated GIF of the letters "SB" tessellated into dozens/hundreds of pink triangles with black wireframes

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • cubers
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • megavids
  • tacticalgear
  • osvaldo12
  • normalnudes
  • tester
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • anitta
  • Leos
  • provamag3
  • modclub
  • lostlight
  • All magazines