# orderedItems[].content
New work: #ALLUVION

Over the past two months I've been actively revisiting, updating/extending and now close to finishing this 1.5 year long journey... The actual journey has been much longer, been toying with (faux) fluid sims since ~2007...

A 50 second preview of one of my fave variations, best enjoyed fullscreen... Tried to achieve some molten, dichroic/irridescent glass & oilfilm aesthetics here, but there're over a dozen of other very different routes/styles possible too, with 25+ parameters to tweak the simulation and look & feel...

Made with https://thi.ng/shader-ast & https://thi.ng/shader-ast-stdlib

#Art #FluidSim #FlowField #Noise #Turbulence #ShaderAST #ThingUmbrella #TypeScript #GLSL #WebGL #GenerativeArt #Animation

# orderedItems[].contentMap.en
New work: #ALLUVION

Over the past two months I've been actively revisiting, updating/extending and now close to finishing this 1.5 year long journey... The actual journey has been much longer, been toying with (faux) fluid sims since ~2007...

A 50 second preview of one of my fave variations, best enjoyed fullscreen... Tried to achieve some molten, dichroic/irridescent glass & oilfilm aesthetics here, but there're over a dozen of other very different routes/styles possible too, with 25+ parameters to tweak the simulation and look & feel...

Made with https://thi.ng/shader-ast & https://thi.ng/shader-ast-stdlib

#Art #FluidSim #FlowField #Noise #Turbulence #ShaderAST #ThingUmbrella #TypeScript #GLSL #WebGL #GenerativeArt #Animation

# orderedItems[].attachment[].name
50 second screencapture of a realtime animated fluidsim showing expanding & interacting droplets of a faux, somewhat lightly viscous liquid, accumulating in thin layers, but constantly diffusing/mixing/fading. The droplets are initially tinted in purple, fading to black and then temportarily transitioning into an molten glass phase before vanishing... The thi.ng logo/watermark is overlayed in the center

# orderedItems[].content
I've created & uploaded video previews of a few more #LinearMemory variations & recommend the download versions for best quality (HD720p @ 60fps)... The actual piece is a realtime (browser based), endless and non-repeating animation. The only things left now are further optimizations and making it dynamically adaptive to different screen/print sizes...

https://drive.google.com/drive/folders/1y1WWZmQjIsbD5lmlPg0jpQmrLLCv2yCB?usp=sharing

Enjoy!

#Generative #Art #GenerativeArt #Color #Pixel #Glitch #Texture #RingBuffer #ThingUmbrella #NoAI #Animation

# orderedItems[].contentMap.en
I've created & uploaded video previews of a few more #LinearMemory variations & recommend the download versions for best quality (HD720p @ 60fps)... The actual piece is a realtime (browser based), endless and non-repeating animation. The only things left now are further optimizations and making it dynamically adaptive to different screen/print sizes...

https://drive.google.com/drive/folders/1y1WWZmQjIsbD5lmlPg0jpQmrLLCv2yCB?usp=sharing

Enjoy!

#Generative #Art #GenerativeArt #Color #Pixel #Glitch #Texture #RingBuffer #ThingUmbrella #NoAI #Animation

# orderedItems[].attachment[].name
Still frame of one of the linked animation previews, showing a glitchy, multi-layered and multi-colored abstract landscape of layers of pixel patterns of different scales and densities. The white thi.ng logo is overlayed in the center

# orderedItems[].content
Truly magical experience, light and frozen fog on our winter walk last night. Simply stunning! -10℃, walking a few kilometers through knee-deep fresh powder snow, thick frozen fog drifting around us, diffusing the last light and creating surreal (almost cliché) colors...

#SilentSunday #WinterWonderland #LandscapePhotography #Photography #Winter #Snow #Fog #Sunset #Bayern

# orderedItems[].contentMap.en
Truly magical experience, light and frozen fog on our winter walk last night. Simply stunning! -10℃, walking a few kilometers through knee-deep fresh powder snow, thick frozen fog drifting around us, diffusing the last light and creating surreal (almost cliché) colors...

#SilentSunday #WinterWonderland #LandscapePhotography #Photography #Winter #Snow #Fog #Sunset #Bayern

# orderedItems[].attachment[].name
View of snowed in trees and hedges in a field and forests in the background. Fog drifting between. The completely clear sky is tinted in a gradient of orange, pink and purple

# orderedItems[].attachment[].name
View down a small country lane near the edge of a village. The road has been cleared, there's ~50cm of snow pushed up on either side. A dense, but thin fog bank is drifting across, obscuring the road after a few meters. A group of trees and the first houses are clearly visible further back against the orange/purple sunset sky.

# orderedItems[].attachment[].name
View of a group of snow covered trees (and a power pole further back) behind the fog near the edge of a field. It's close to sunset and the light is being heavily diffused in the fog, creating an intense vanilla/pinkish glow against the silhouettes of the trees

# orderedItems[].attachment[].name
A small group of trees (spruce, larch) covered in heavy snow standing in a field covered in layers of ground fog. Clear sky. It's close to sunset and the light already has a faint vanilla/pink tint.

# orderedItems[].content
A week ago was the 1st anniversary of this solo instance & more generally of my fulltime move to Mastodon. A good time for a more detailed intro, partially intended as CV thread (pinned to my profile) which I will add to over time (also to compensate the ongoing lack of a proper website)... Always open to consulting offers, commissions and/or suitable remote positions...

Hi, I'm Karsten 👋 — indy software engineer, researcher, #OpenSource author of hundreds of projects (since ~1999), computational/generative artist/designer, landscape photographer, lecturer, outdoor enthusiast, on the ND spectrum. Main interest in transdisplinary research, tool making, exploring techniques, projects & roles amplifying the creative, educational, expressive and inspirational potential of (personal) computation, code as material, combining this with generative techniques of all forms (quite different to what is now called and implied by "generative AI").

Much of my own practice & philosophy is about #BottomUpDesign, interconnectedness, simplicity and composability as key enablers of emergent effects (also in terms of workflow & tool/system design). Been adopting a round-robin approach to cross-pollinate my work & learning, spending periods going deep into various fields to build up and combine experience in (A-Z order): API design, audio/DSP, baremetal (mainly STM32), computer vision/image processing, compiler/DSL/VM impl, databases/linked data/query engines, data structures impl, dataviz, fabrication (3DP, CNC, knit, lasercut), file formats & protocols (as connective tissue), "fullstack" webdev (front/back/AWS), generative & evolutionary algorithms/art/design/aesthetics/music, geometry/graphics, parsers, renderers, simulation (agents/CFD/particles/physics), shaders, typography, UI/UX/IxD...

Since 2018 my main endeavor has been https://thi.ng/umbrella, a "jurassic" (as it's been called) monorepo of ~185 code libraries, addressing many of the above topics (plus ~150 examples to illustrate usage). More generally, for the past decade my OSS work has been focused on #TypeScript, #C, #Zig, #WebAssembly, #Clojure, #ClojureScript, #GLSL, #OpenCL, #Forth, #Houdini/#VEX. Earlier on, mainly Java (~15 years, since 1996).

Formative years in the deep end of the #Atari 8bit demoscene (Chip Special Software) & game dev (eg. The Brundles, 1993), B&W dark room lab (since age 10), music production/studio (from 1993-2003), studied media informatics, moved to London initially as web dev, game dev (Shockwave 3D, ActionScript), interaction designer, information architect. Branched out, more varied clients/roles/community for my growing collection of computational design tools, which I've been continously expanding/updating for the past 20+ years, and which have been the backbone of 99% of my work since ~2006 (and which helped countless artists/designers/students/studios/startups). Creator of thi.ng (since 2011), toxiclibs (2006-2013), both large-scale, multi-faceted library collections. Early contributor to Processing (2003-2005, pieces of core graphics API).

Worked on dozens of interactive installations/exhibitions, public spaces & mediafacades (own projects and many collabs, several award winning), large-scale print on-demand projects (>250k unique outputs), was instrumental in creating some of the first generative brand identity systems (incl. cloud infrastructure & asset management pipelines), collaborated with architects, artists, agencies, hardware engineers, had my work shown at major galleries/museums worldwide, taught 60+ workshops at universities, institutions and companies (mainly in EMEA). Was algorithm design lead at Nike's research group for 5 years, working on novel internal design tools, workflows, methods of make, product design (footwear & apparel) and team training. After 23 years in London, my family decided on a lifestyle change and so currently based in the beautiful Allgäu region in Southern Germany.

# orderedItems[].contentMap.en
A week ago was the 1st anniversary of this solo instance & more generally of my fulltime move to Mastodon. A good time for a more detailed intro, partially intended as CV thread (pinned to my profile) which I will add to over time (also to compensate the ongoing lack of a proper website)... Always open to consulting offers, commissions and/or suitable remote positions...

Hi, I'm Karsten 👋 — indy software engineer, researcher, #OpenSource author of hundreds of projects (since ~1999), computational/generative artist/designer, landscape photographer, lecturer, outdoor enthusiast, on the ND spectrum. Main interest in transdisplinary research, tool making, exploring techniques, projects & roles amplifying the creative, educational, expressive and inspirational potential of (personal) computation, code as material, combining this with generative techniques of all forms (quite different to what is now called and implied by "generative AI").

Much of my own practice & philosophy is about #BottomUpDesign, interconnectedness, simplicity and composability as key enablers of emergent effects (also in terms of workflow & tool/system design). Been adopting a round-robin approach to cross-pollinate my work & learning, spending periods going deep into various fields to build up and combine experience in (A-Z order): API design, audio/DSP, baremetal (mainly STM32), computer vision/image processing, compiler/DSL/VM impl, databases/linked data/query engines, data structures impl, dataviz, fabrication (3DP, CNC, knit, lasercut), file formats & protocols (as connective tissue), "fullstack" webdev (front/back/AWS), generative & evolutionary algorithms/art/design/aesthetics/music, geometry/graphics, parsers, renderers, simulation (agents/CFD/particles/physics), shaders, typography, UI/UX/IxD...

Since 2018 my main endeavor has been https://thi.ng/umbrella, a "jurassic" (as it's been called) monorepo of ~185 code libraries, addressing many of the above topics (plus ~150 examples to illustrate usage). More generally, for the past decade my OSS work has been focused on #TypeScript, #C, #Zig, #WebAssembly, #Clojure, #ClojureScript, #GLSL, #OpenCL, #Forth, #Houdini/#VEX. Earlier on, mainly Java (~15 years, since 1996).

Formative years in the deep end of the #Atari 8bit demoscene (Chip Special Software) & game dev (eg. The Brundles, 1993), B&W dark room lab (since age 10), music production/studio (from 1993-2003), studied media informatics, moved to London initially as web dev, game dev (Shockwave 3D, ActionScript), interaction designer, information architect. Branched out, more varied clients/roles/community for my growing collection of computational design tools, which I've been continously expanding/updating for the past 20+ years, and which have been the backbone of 99% of my work since ~2006 (and which helped countless artists/designers/students/studios/startups). Creator of thi.ng (since 2011), toxiclibs (2006-2013), both large-scale, multi-faceted library collections. Early contributor to Processing (2003-2005, pieces of core graphics API).

Worked on dozens of interactive installations/exhibitions, public spaces & mediafacades (own projects and many collabs, several award winning), large-scale print on-demand projects (>250k unique outputs), was instrumental in creating some of the first generative brand identity systems (incl. cloud infrastructure & asset management pipelines), collaborated with architects, artists, agencies, hardware engineers, had my work shown at major galleries/museums worldwide, taught 60+ workshops at universities, institutions and companies (mainly in EMEA). Was algorithm design lead at Nike's research group for 5 years, working on novel internal design tools, workflows, methods of make, product design (footwear & apparel) and team training. After 23 years in London, my family decided on a lifestyle change and so currently based in the beautiful Allgäu region in Southern Germany.

# orderedItems[].attachment[].name
A subdivided irregular grid of thumbnail images of some notable projects I've worked on (exhibitions, renders/visualizations, workshops, tools, physical products/artifacts), all of them involving generative design approaches and made with tools I've created myself. The selection covers projects from 2007-2020...

# orderedItems[].content
#HowToThing #Epilogue #LongRead: After 66 days of addressing 30 wildly varied use cases and building ~20 new example projects of varying complexity to illustrate how #ThingUmbrella libraries can be used & combined, I'm taking a break to concentrate on other important thi.ngs...

With this overall selection I tried shining a light on common architectural patterns, but also some underexposed, yet interesting niche topics. Since there were many different techniques involved, it's natural not everything resonated with everyone. That's fine! Though, my hope always is that readers take an interest in a wide range of topics, and so many of these new examples were purposefully multi-faceted and hopefully provided insights for at least some parts, plus (in)directly communicated a core essence of the larger project:

Only individual packages (or small clusters) are designed & optimized for a set of particular use cases. At large, though, thi.ng explicitly does NOT offer any such guidance or even opinion. All I can offer are possibilities, nudges and cross-references, how these constructs & techniques can be (and have been) useful and/or the theory underpinning them. For some topics, thi.ng libs provide multiple approaches to achieve certain goals. This again is by design (not lack of it!) and stems from hard-learned experience, showing that many (esp. larger) projects highly benefit from more nuanced (sometimes conflicting approaches) compared to popular defacto "catch-all" framework solutions. To avid users (incl. myself) this approach has become a somewhat unique offering and advantage, yet in itself seems to be the hardest and most confusing aspect of the entire project to communicate to newcomers.

So seeing this list of new projects together, to me really is a celebration (and confirmation/testament) of the overall #BottomUpDesign #ThingUmbrella approach (which I've been building on since ~2006): From the wide spectrum/flexibility of use cases, the expressiveness, concision, the data-first approach, the undogmatic mix of complementary paradigms, the separation of concerns, no hidden magic state, only minimal build tooling requirements (a bundler is optional, but recommended for tree shaking, no more) — these are all aspects I think are key to building better (incl. more maintainable & reason-able) software. IMO they are worth embracing & exposing more people to and this is what I've partially attempted to do with this series of posts...

ICYMI here's a summary of the 10 most recent posts (full list in the https://thi.ng/umbrella readme). Many of those examples have more comments than code...

021: Iterative animated polygon subdivision & heat map viz
https://mastodon.thi.ng/@toxi/11122194 3333023306

022: Quasi-random voronoi lattice generator
https://mastodon.thi.ng/@toxi/11124441 2425832657

023: Tag-based Jaccard similarity ranking using bitfields
https://mastodon.thi.ng/@toxi/11125696 0928934577

024: 2.5D hidden line visualization of DEM files
https://mastodon.thi.ng/@toxi/11126950 5611983570

025: Transforming & plotting 10k data points using SIMD
https://mastodon.thi.ng/@toxi/11128326 2419126958

026: Shader meta-programming to generate 16 animated function plots
https://mastodon.thi.ng/@toxi/11129584 2650216136

027: Flocking sim w/ neighborhood queries to visualize proximity
https://mastodon.thi.ng/@toxi/11130843 9597090930

028: Randomized, space-filling, nested 2D grid layout generator
https://mastodon.thi.ng/@toxi/11132456 6926701431

029: Forth-like DSL & livecoding playground for 2D geometry
https://mastodon.thi.ng/@toxi/11133502 5037332972

030: Procedural text generation via custom DSL & parse grammar
https://mastodon.thi.ng/@toxi/11134707 4558293056

#ThingUmbrella #OpenSource #TypeScript #JavaScript #Tutorial

# orderedItems[].contentMap.en
#HowToThing #Epilogue #LongRead: After 66 days of addressing 30 wildly varied use cases and building ~20 new example projects of varying complexity to illustrate how #ThingUmbrella libraries can be used & combined, I'm taking a break to concentrate on other important thi.ngs...

With this overall selection I tried shining a light on common architectural patterns, but also some underexposed, yet interesting niche topics. Since there were many different techniques involved, it's natural not everything resonated with everyone. That's fine! Though, my hope always is that readers take an interest in a wide range of topics, and so many of these new examples were purposefully multi-faceted and hopefully provided insights for at least some parts, plus (in)directly communicated a core essence of the larger project:

Only individual packages (or small clusters) are designed & optimized for a set of particular use cases. At large, though, thi.ng explicitly does NOT offer any such guidance or even opinion. All I can offer are possibilities, nudges and cross-references, how these constructs & techniques can be (and have been) useful and/or the theory underpinning them. For some topics, thi.ng libs provide multiple approaches to achieve certain goals. This again is by design (not lack of it!) and stems from hard-learned experience, showing that many (esp. larger) projects highly benefit from more nuanced (sometimes conflicting approaches) compared to popular defacto "catch-all" framework solutions. To avid users (incl. myself) this approach has become a somewhat unique offering and advantage, yet in itself seems to be the hardest and most confusing aspect of the entire project to communicate to newcomers.

So seeing this list of new projects together, to me really is a celebration (and confirmation/testament) of the overall #BottomUpDesign #ThingUmbrella approach (which I've been building on since ~2006): From the wide spectrum/flexibility of use cases, the expressiveness, concision, the data-first approach, the undogmatic mix of complementary paradigms, the separation of concerns, no hidden magic state, only minimal build tooling requirements (a bundler is optional, but recommended for tree shaking, no more) — these are all aspects I think are key to building better (incl. more maintainable & reason-able) software. IMO they are worth embracing & exposing more people to and this is what I've partially attempted to do with this series of posts...

ICYMI here's a summary of the 10 most recent posts (full list in the https://thi.ng/umbrella readme). Many of those examples have more comments than code...

021: Iterative animated polygon subdivision & heat map viz
https://mastodon.thi.ng/@toxi/11122194 3333023306

022: Quasi-random voronoi lattice generator
https://mastodon.thi.ng/@toxi/11124441 2425832657

023: Tag-based Jaccard similarity ranking using bitfields
https://mastodon.thi.ng/@toxi/11125696 0928934577

024: 2.5D hidden line visualization of DEM files
https://mastodon.thi.ng/@toxi/11126950 5611983570

025: Transforming & plotting 10k data points using SIMD
https://mastodon.thi.ng/@toxi/11128326 2419126958

026: Shader meta-programming to generate 16 animated function plots
https://mastodon.thi.ng/@toxi/11129584 2650216136

027: Flocking sim w/ neighborhood queries to visualize proximity
https://mastodon.thi.ng/@toxi/11130843 9597090930

028: Randomized, space-filling, nested 2D grid layout generator
https://mastodon.thi.ng/@toxi/11132456 6926701431

029: Forth-like DSL & livecoding playground for 2D geometry
https://mastodon.thi.ng/@toxi/11133502 5037332972

030: Procedural text generation via custom DSL & parse grammar
https://mastodon.thi.ng/@toxi/11134707 4558293056

#ThingUmbrella #OpenSource #TypeScript #JavaScript #Tutorial