home.social

#thingumbrella — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #thingumbrella, aggregated by home.social.

fetched live
  1. Here's a short code snippet I used to convert & chop the massive 44000 x 25000 pixel GeoTIFF DEM file into smaller PNG tiles for easier visualization:

    gist.github.com/postspectacula

    The tool uses the following #ThingUmbrella packages:

    #TypeScript #JavaScript #DEM #GIS #Tiles #Tool

  2. Here's a short code snippet I used to convert & chop the massive 44000 x 25000 pixel GeoTIFF DEM file into smaller PNG tiles for easier visualization:

    gist.github.com/postspectacula

    The tool uses the following #ThingUmbrella packages:

    #TypeScript #JavaScript #DEM #GIS #Tiles #Tool

  3. Here's a short code snippet I used to convert & chop the massive 44000 x 25000 pixel GeoTIFF DEM file into smaller PNG tiles for easier visualization:

    gist.github.com/postspectacula

    The tool uses the following #ThingUmbrella packages:

    #TypeScript #JavaScript #DEM #GIS #Tiles #Tool

  4. Here's a short code snippet I used to convert & chop the massive 44000 x 25000 pixel GeoTIFF DEM file into smaller PNG tiles for easier visualization:

    gist.github.com/postspectacula

    The tool uses the following #ThingUmbrella packages:

    #TypeScript #JavaScript #DEM #GIS #Tiles #Tool

  5. Here's a short code snippet I used to convert & chop the massive 44000 x 25000 pixel GeoTIFF DEM file into smaller PNG tiles for easier visualization:

    gist.github.com/postspectacula

    The tool uses the following #ThingUmbrella packages:

    #TypeScript #JavaScript #DEM #GIS #Tiles #Tool

  6. This time with video (hopefully)... I found a 5 meter resolution digital elevation model of a part of the Austrian Alps (Tyrol[1]) and quickly visualized the region around the aforementioned Hintereisferner glacier using my shadergraph.thi.ng/ editor. The glacier itself is visible in the bottom left corner of the cropped terrain. The picture I posted earlier[2] was taken just north-east of the valley confluence nearest to the glacier tongue. Neighboring Kesselwandferner and Gepatschferner (the largest of the remaining glaciers in the Eastern Alps) are visible too...

    If you want to try it with your own DEMs, just drag the image (as PNG) into the browser window, then create shader nodes: Normal map, Ambient Occlusion, Bump and Multiply (and set respective inputs for each node/pass)

    [1] tirol.gv.at/sicherheit/geoinfo

    [2] mastodon.thi.ng/@toxi/11705417

    #ThingUmbrella #WebGL #ShaderGraph #DEM #GIS #Terrain #Glacier #Tyrol

  7. This time with video (hopefully)... I found a 5 meter resolution digital elevation model of a part of the Austrian Alps (Tyrol[1]) and quickly visualized the region around the aforementioned Hintereisferner glacier using my shadergraph.thi.ng/ editor. The glacier itself is visible in the bottom left corner of the cropped terrain. The picture I posted earlier[2] was taken just north-east of the valley confluence nearest to the glacier tongue. Neighboring Kesselwandferner and Gepatschferner (the largest of the remaining glaciers in the Eastern Alps) are visible too...

    If you want to try it with your own DEMs, just drag the image (as PNG) into the browser window, then create shader nodes: Normal map, Ambient Occlusion, Bump and Multiply (and set respective inputs for each node/pass)

    [1] tirol.gv.at/sicherheit/geoinfo

    [2] mastodon.thi.ng/@toxi/11705417

    #ThingUmbrella #WebGL #ShaderGraph #DEM #GIS #Terrain #Glacier #Tyrol

  8. This time with video (hopefully)... I found a 5 meter resolution digital elevation model of a part of the Austrian Alps (Tyrol[1]) and quickly visualized the region around the aforementioned Hintereisferner glacier using my shadergraph.thi.ng/ editor. The glacier itself is visible in the bottom left corner of the cropped terrain. The picture I posted earlier[2] was taken just north-east of the valley confluence nearest to the glacier tongue. Neighboring Kesselwandferner and Gepatschferner (the largest of the remaining glaciers in the Eastern Alps) are visible too...

    If you want to try it with your own DEMs, just drag the image (as PNG) into the browser window, then create shader nodes: Normal map, Ambient Occlusion, Bump and Multiply (and set respective inputs for each node/pass)

    [1] tirol.gv.at/sicherheit/geoinfo

    [2] mastodon.thi.ng/@toxi/11705417

    #ThingUmbrella #WebGL #ShaderGraph #DEM #GIS #Terrain #Glacier #Tyrol

  9. This time with video (hopefully)... I found a 5 meter resolution digital elevation model of a part of the Austrian Alps (Tyrol[1]) and quickly visualized the region around the aforementioned Hintereisferner glacier using my shadergraph.thi.ng/ editor. The glacier itself is visible in the bottom left corner of the cropped terrain. The picture I posted earlier[2] was taken just north-east of the valley confluence nearest to the glacier tongue. Neighboring Kesselwandferner and Gepatschferner (the largest of the remaining glaciers in the Eastern Alps) are visible too...

    If you want to try it with your own DEMs, just drag the image (as PNG) into the browser window, then create shader nodes: Normal map, Ambient Occlusion, Bump and Multiply (and set respective inputs for each node/pass)

    [1] tirol.gv.at/sicherheit/geoinfo

    [2] mastodon.thi.ng/@toxi/11705417

    #ThingUmbrella #WebGL #ShaderGraph #DEM #GIS #Terrain #Glacier #Tyrol

  10. This time with video (hopefully)... I found a 5 meter resolution digital elevation model of a part of the Austrian Alps (Tyrol[1]) and quickly visualized the region around the aforementioned Hintereisferner glacier using my shadergraph.thi.ng/ editor. The glacier itself is visible in the bottom left corner of the cropped terrain. The picture I posted earlier[2] was taken just north-east of the valley confluence nearest to the glacier tongue. Neighboring Kesselwandferner and Gepatschferner (the largest of the remaining glaciers in the Eastern Alps) are visible too...

    If you want to try it with your own DEMs, just drag the image (as PNG) into the browser window, then create shader nodes: Normal map, Ambient Occlusion, Bump and Multiply (and set respective inputs for each node/pass)

    [1] tirol.gv.at/sicherheit/geoinfo

    [2] mastodon.thi.ng/@toxi/11705417

    #ThingUmbrella #WebGL #ShaderGraph #DEM #GIS #Terrain #Glacier #Tyrol

  11. Heads up for those who care: A flurry of #ThingUmbrella updates/additions incoming, incl. new nD spatial hash table (with 2D/3D optimizations), indexed mesh data structure, updates to thi.ng/vectors and thi.ng/webgl and other small fixes. More details in next day or so...

    New example project (#189) to demonstrate basic usage of the new mesh type (and conversion from imported OBJ model):

    Demo:
    demo.thi.ng/umbrella/webgl-mes

    Source code:
    codeberg.org/thi.ng/umbrella/s

    #ThingUmbrella #WebGL #Mesh #Geometry #TypeScript #JavaScript

  12. Heads up for those who care: A flurry of #ThingUmbrella updates/additions incoming, incl. new nD spatial hash table (with 2D/3D optimizations), indexed mesh data structure, updates to thi.ng/vectors and thi.ng/webgl and other small fixes. More details in next day or so...

    New example project (#189) to demonstrate basic usage of the new mesh type (and conversion from imported OBJ model):

    Demo:
    demo.thi.ng/umbrella/webgl-mes

    Source code:
    codeberg.org/thi.ng/umbrella/s

    #ThingUmbrella #WebGL #Mesh #Geometry #TypeScript #JavaScript

  13. Heads up for those who care: A flurry of #ThingUmbrella updates/additions incoming, incl. new nD spatial hash table (with 2D/3D optimizations), indexed mesh data structure, updates to thi.ng/vectors and thi.ng/webgl and other small fixes. More details in next day or so...

    New example project (#189) to demonstrate basic usage of the new mesh type (and conversion from imported OBJ model):

    Demo:
    demo.thi.ng/umbrella/webgl-mes

    Source code:
    codeberg.org/thi.ng/umbrella/s

    #ThingUmbrella #WebGL #Mesh #Geometry #TypeScript #JavaScript

  14. Heads up for those who care: A flurry of #ThingUmbrella updates/additions incoming, incl. new nD spatial hash table (with 2D/3D optimizations), indexed mesh data structure, updates to thi.ng/vectors and thi.ng/webgl and other small fixes. More details in next day or so...

    New example project (#189) to demonstrate basic usage of the new mesh type (and conversion from imported OBJ model):

    Demo:
    demo.thi.ng/umbrella/webgl-mes

    Source code:
    codeberg.org/thi.ng/umbrella/s

    #ThingUmbrella #WebGL #Mesh #Geometry #TypeScript #JavaScript

  15. Heads up for those who care: A flurry of #ThingUmbrella updates/additions incoming, incl. new nD spatial hash table (with 2D/3D optimizations), indexed mesh data structure, updates to thi.ng/vectors and thi.ng/webgl and other small fixes. More details in next day or so...

    New example project (#189) to demonstrate basic usage of the new mesh type (and conversion from imported OBJ model):

    Demo:
    demo.thi.ng/umbrella/webgl-mes

    Source code:
    codeberg.org/thi.ng/umbrella/s

    #ThingUmbrella #WebGL #Mesh #Geometry #TypeScript #JavaScript

  16. I somehow missed that the Go-rewrite of #TypeScript (v7.0.2) with supposedly 10x performance already had been released two weeks ago[1]. Of course, I immediately had to try it out with thi.ng/umbrella and see how this impacts build times. tl;dr It's very impressive and congrats to the team who pulled it off!

    For context, the current #ThingUmbrella codebase contains 328k lines of TypeScript source code, of which 218k lines are actual code, 87k lines comments, the rest blanks. There're 216 packages (aka individual libraries) and 188 example projects to demonstrate their usage.

    TS v6 build times:

    • from scratch (packages only): 5m 44s
    • rebuild (packages only): 2m 18s
    • examples: 1m 18s

    TS v7 build times:

    • from scratch (packages only): 1m 50s
    • rebuild (packages only): 29s 166ms
    • examples: 56s 193ms

    This is really cool and means a 3-5x speed up for (re)building all packages. The difference for example projects is much smaller, since there most of the time there is consumed by Vite (TypeScript is only used for type checking prior to building).

    Currently (for TS6), my package build steps are actually using esbuild for code generation and here tsc is also only used for type checking and outputting type declaration files. This was done because esbuild is much faster (even in incremental mode). But with the TS7 speedups, I don't need this extra build tool anymore...

    Notice for users: I've not yet officially switched to TS7, but will do so in the near future. I'm also grateful that there were only minor code changes (and fair ones) required for switching to the new version. For example, TS7 is catching obsolete generics, which previous versions didn't complain about...

    Actually very happy about this new release (usually more of a dread)!

    [1] devblogs.microsoft.com/typescr

    #ThingUmbrella #Build #Performance #Benchmark

  17. I somehow missed that the Go-rewrite of #TypeScript (v7.0.2) with supposedly 10x performance already had been released two weeks ago[1]. Of course, I immediately had to try it out with thi.ng/umbrella and see how this impacts build times. tl;dr It's very impressive and congrats to the team who pulled it off!

    For context, the current #ThingUmbrella codebase contains 328k lines of TypeScript source code, of which 218k lines are actual code, 87k lines comments, the rest blanks. There're 216 packages (aka individual libraries) and 188 example projects to demonstrate their usage.

    TS v6 build times:

    • from scratch (packages only): 5m 44s
    • rebuild (packages only): 2m 18s
    • examples: 1m 18s

    TS v7 build times:

    • from scratch (packages only): 1m 50s
    • rebuild (packages only): 29s 166ms
    • examples: 56s 193ms

    This is really cool and means a 3-5x speed up for (re)building all packages. The difference for example projects is much smaller, since there most of the time there is consumed by Vite (TypeScript is only used for type checking prior to building).

    Currently (for TS6), my package build steps are actually using esbuild for code generation and here tsc is also only used for type checking and outputting type declaration files. This was done because esbuild is much faster (even in incremental mode). But with the TS7 speedups, I don't need this extra build tool anymore...

    Notice for users: I've not yet officially switched to TS7, but will do so in the near future. I'm also grateful that there were only minor code changes (and fair ones) required for switching to the new version. For example, TS7 is catching obsolete generics, which previous versions didn't complain about...

    Actually very happy about this new release (usually more of a dread)!

    [1] devblogs.microsoft.com/typescr

    #ThingUmbrella #Build #Performance #Benchmark

  18. I somehow missed that the Go-rewrite of #TypeScript (v7.0.2) with supposedly 10x performance already had been released two weeks ago[1]. Of course, I immediately had to try it out with thi.ng/umbrella and see how this impacts build times. tl;dr It's very impressive and congrats to the team who pulled it off!

    For context, the current #ThingUmbrella codebase contains 328k lines of TypeScript source code, of which 218k lines are actual code, 87k lines comments, the rest blanks. There're 216 packages (aka individual libraries) and 188 example projects to demonstrate their usage.

    TS v6 build times:

    • from scratch (packages only): 5m 44s
    • rebuild (packages only): 2m 18s
    • examples: 1m 18s

    TS v7 build times:

    • from scratch (packages only): 1m 50s
    • rebuild (packages only): 29s 166ms
    • examples: 56s 193ms

    This is really cool and means a 3-5x speed up for (re)building all packages. The difference for example projects is much smaller, since there most of the time there is consumed by Vite (TypeScript is only used for type checking prior to building).

    Currently (for TS6), my package build steps are actually using esbuild for code generation and here tsc is also only used for type checking and outputting type declaration files. This was done because esbuild is much faster (even in incremental mode). But with the TS7 speedups, I don't need this extra build tool anymore...

    Notice for users: I've not yet officially switched to TS7, but will do so in the near future. I'm also grateful that there were only minor code changes (and fair ones) required for switching to the new version. For example, TS7 is catching obsolete generics, which previous versions didn't complain about...

    Actually very happy about this new release (usually more of a dread)!

    [1] devblogs.microsoft.com/typescr

    #ThingUmbrella #Build #Performance #Benchmark

  19. I somehow missed that the Go-rewrite of #TypeScript (v7.0.2) with supposedly 10x performance already had been released two weeks ago[1]. Of course, I immediately had to try it out with thi.ng/umbrella and see how this impacts build times. tl;dr It's very impressive and congrats to the team who pulled it off!

    For context, the current #ThingUmbrella codebase contains 328k lines of TypeScript source code, of which 218k lines are actual code, 87k lines comments, the rest blanks. There're 216 packages (aka individual libraries) and 188 example projects to demonstrate their usage.

    TS v6 build times:

    • from scratch (packages only): 5m 44s
    • rebuild (packages only): 2m 18s
    • examples: 1m 18s

    TS v7 build times:

    • from scratch (packages only): 1m 50s
    • rebuild (packages only): 29s 166ms
    • examples: 56s 193ms

    This is really cool and means a 3-5x speed up for (re)building all packages. The difference for example projects is much smaller, since there most of the time there is consumed by Vite (TypeScript is only used for type checking prior to building).

    Currently (for TS6), my package build steps are actually using esbuild for code generation and here tsc is also only used for type checking and outputting type declaration files. This was done because esbuild is much faster (even in incremental mode). But with the TS7 speedups, I don't need this extra build tool anymore...

    Notice for users: I've not yet officially switched to TS7, but will do so in the near future. I'm also grateful that there were only minor code changes (and fair ones) required for switching to the new version. For example, TS7 is catching obsolete generics, which previous versions didn't complain about...

    Actually very happy about this new release (usually more of a dread)!

    [1] devblogs.microsoft.com/typescr

    #ThingUmbrella #Build #Performance #Benchmark

  20. I somehow missed that the Go-rewrite of #TypeScript (v7.0.2) with supposedly 10x performance already had been released two weeks ago[1]. Of course, I immediately had to try it out with thi.ng/umbrella and see how this impacts build times. tl;dr It's very impressive and congrats to the team who pulled it off!

    For context, the current #ThingUmbrella codebase contains 328k lines of TypeScript source code, of which 218k lines are actual code, 87k lines comments, the rest blanks. There're 216 packages (aka individual libraries) and 188 example projects to demonstrate their usage.

    TS v6 build times:

    • from scratch (packages only): 5m 44s
    • rebuild (packages only): 2m 18s
    • examples: 1m 18s

    TS v7 build times:

    • from scratch (packages only): 1m 50s
    • rebuild (packages only): 29s 166ms
    • examples: 56s 193ms

    This is really cool and means a 3-5x speed up for (re)building all packages. The difference for example projects is much smaller, since there most of the time there is consumed by Vite (TypeScript is only used for type checking prior to building).

    Currently (for TS6), my package build steps are actually using esbuild for code generation and here tsc is also only used for type checking and outputting type declaration files. This was done because esbuild is much faster (even in incremental mode). But with the TS7 speedups, I don't need this extra build tool anymore...

    Notice for users: I've not yet officially switched to TS7, but will do so in the near future. I'm also grateful that there were only minor code changes (and fair ones) required for switching to the new version. For example, TS7 is catching obsolete generics, which previous versions didn't complain about...

    Actually very happy about this new release (usually more of a dread)!

    [1] devblogs.microsoft.com/typescr

    #ThingUmbrella #Build #Performance #Benchmark

  21. With Firefox 153 officially supporting WebAssembly.promising and its counterpart WebAssembly.Suspending[1], I've updated thi.ng/wasm-api to simplify the integration of hybrid JS/WASM async function calls, so you don't have to worry about manually creating these wrappers:

    • JavaScript async functions declared in a module's WASM imports will be auto-wrapped using WebAssembly.Suspending
    • WASM exports declared/listed via WasmModuleOpts.asyncExports will be auto-wrapped using WebAssembly.promising

    However, since that WASM feature isn't yet supported by Safari (no surprise there) and various mobile browsers, it's best to check for and selectively limit features relying on this mechanism...

    Happy coding! :)

    [1] developer.mozilla.org/en-US/do

    #ReleaseAnnouncement #ThingUmbrella #OpenSource #WASM #WebAssembly #TypeScript #JavaScript #Async

  22. With Firefox 153 officially supporting WebAssembly.promising and its counterpart WebAssembly.Suspending[1], I've updated thi.ng/wasm-api to simplify the integration of hybrid JS/WASM async function calls, so you don't have to worry about manually creating these wrappers:

    • JavaScript async functions declared in a module's WASM imports will be auto-wrapped using WebAssembly.Suspending
    • WASM exports declared/listed via WasmModuleOpts.asyncExports will be auto-wrapped using WebAssembly.promising

    However, since that WASM feature isn't yet supported by Safari (no surprise there) and various mobile browsers, it's best to check for and selectively limit features relying on this mechanism...

    Happy coding! :)

    [1] developer.mozilla.org/en-US/do

    #ReleaseAnnouncement #ThingUmbrella #OpenSource #WASM #WebAssembly #TypeScript #JavaScript #Async

  23. With Firefox 153 officially supporting WebAssembly.promising and its counterpart WebAssembly.Suspending[1], I've updated thi.ng/wasm-api to simplify the integration of hybrid JS/WASM async function calls, so you don't have to worry about manually creating these wrappers:

    • JavaScript async functions declared in a module's WASM imports will be auto-wrapped using WebAssembly.Suspending
    • WASM exports declared/listed via WasmModuleOpts.asyncExports will be auto-wrapped using WebAssembly.promising

    However, since that WASM feature isn't yet supported by Safari (no surprise there) and various mobile browsers, it's best to check for and selectively limit features relying on this mechanism...

    Happy coding! :)

    [1] developer.mozilla.org/en-US/do

    #ReleaseAnnouncement #ThingUmbrella #OpenSource #WASM #WebAssembly #TypeScript #JavaScript #Async

  24. With Firefox 153 officially supporting WebAssembly.promising and its counterpart WebAssembly.Suspending[1], I've updated thi.ng/wasm-api to simplify the integration of hybrid JS/WASM async function calls, so you don't have to worry about manually creating these wrappers:

    • JavaScript async functions declared in a module's WASM imports will be auto-wrapped using WebAssembly.Suspending
    • WASM exports declared/listed via WasmModuleOpts.asyncExports will be auto-wrapped using WebAssembly.promising

    However, since that WASM feature isn't yet supported by Safari (no surprise there) and various mobile browsers, it's best to check for and selectively limit features relying on this mechanism...

    Happy coding! :)

    [1] developer.mozilla.org/en-US/do

    #ReleaseAnnouncement #ThingUmbrella #OpenSource #WASM #WebAssembly #TypeScript #JavaScript #Async

  25. With Firefox 153 officially supporting WebAssembly.promising and its counterpart WebAssembly.Suspending[1], I've updated thi.ng/wasm-api to simplify the integration of hybrid JS/WASM async function calls, so you don't have to worry about manually creating these wrappers:

    • JavaScript async functions declared in a module's WASM imports will be auto-wrapped using WebAssembly.Suspending
    • WASM exports declared/listed via WasmModuleOpts.asyncExports will be auto-wrapped using WebAssembly.promising

    However, since that WASM feature isn't yet supported by Safari (no surprise there) and various mobile browsers, it's best to check for and selectively limit features relying on this mechanism...

    Happy coding! :)

    [1] developer.mozilla.org/en-US/do

    #ReleaseAnnouncement #ThingUmbrella #OpenSource #WASM #WebAssembly #TypeScript #JavaScript #Async

  26. Another #ThingUmbrella release cycle this AM:

    • fixed yesterday's thi.ng/geom-io-obj stream parser update to also support #Safari (aka the modern IE6-like browser problem child), which in the release notes for Safari v26.4 claims[1] that ReadableStream can (finally) be iterated via for await(...) syntax, but then turns out it's still only planned for v27 [2]... 🙄
    • added async versions of all timing & benchmarking functions in thi.ng/bench to support benchmarking async functions

    [1] webkit.org/blog/17862/webkit-f
    [2] developer.mozilla.org/en-US/do

    #OpenSource #ReleaseDay #TypeScript #JavaScript #Async

  27. Another #ThingUmbrella release cycle this AM:

    • fixed yesterday's thi.ng/geom-io-obj stream parser update to also support #Safari (aka the modern IE6-like browser problem child), which in the release notes for Safari v26.4 claims[1] that ReadableStream can (finally) be iterated via for await(...) syntax, but then turns out it's still only planned for v27 [2]... 🙄
    • added async versions of all timing & benchmarking functions in thi.ng/bench to support benchmarking async functions

    [1] webkit.org/blog/17862/webkit-f
    [2] developer.mozilla.org/en-US/do

    #OpenSource #ReleaseDay #TypeScript #JavaScript #Async

  28. Another #ThingUmbrella release cycle this AM:

    • fixed yesterday's thi.ng/geom-io-obj stream parser update to also support #Safari (aka the modern IE6-like browser problem child), which in the release notes for Safari v26.4 claims[1] that ReadableStream can (finally) be iterated via for await(...) syntax, but then turns out it's still only planned for v27 [2]... 🙄
    • added async versions of all timing & benchmarking functions in thi.ng/bench to support benchmarking async functions

    [1] webkit.org/blog/17862/webkit-f
    [2] developer.mozilla.org/en-US/do

    #OpenSource #ReleaseDay #TypeScript #JavaScript #Async

  29. Another #ThingUmbrella release cycle this AM:

    • fixed yesterday's thi.ng/geom-io-obj stream parser update to also support #Safari (aka the modern IE6-like browser problem child), which in the release notes for Safari v26.4 claims[1] that ReadableStream can (finally) be iterated via for await(...) syntax, but then turns out it's still only planned for v27 [2]... 🙄
    • added async versions of all timing & benchmarking functions in thi.ng/bench to support benchmarking async functions

    [1] webkit.org/blog/17862/webkit-f
    [2] developer.mozilla.org/en-US/do

    #OpenSource #ReleaseDay #TypeScript #JavaScript #Async

  30. Another #ThingUmbrella release cycle this AM:

    • fixed yesterday's thi.ng/geom-io-obj stream parser update to also support #Safari (aka the modern IE6-like browser problem child), which in the release notes for Safari v26.4 claims[1] that ReadableStream can (finally) be iterated via for await(...) syntax, but then turns out it's still only planned for v27 [2]... 🙄
    • added async versions of all timing & benchmarking functions in thi.ng/bench to support benchmarking async functions

    [1] webkit.org/blog/17862/webkit-f
    [2] developer.mozilla.org/en-US/do

    #OpenSource #ReleaseDay #TypeScript #JavaScript #Async

  31. New #ThingUmbrella release(s): Updated the thi.ng/geom-io-obj OBJ mesh parser to support stream parsing using async iterables. This allows direct piping fetch() responses to the parser.

    const response = await fetch(MODEL_URL);
    const objModel = await parseOBJFromStream(response.body);

    Also polished and published a related small example project for it (incl. arcball camera controller, which had an update too):

    Demo (Click & drag to rotate view, touchpad/mousewheel to zoom):
    demo.thi.ng/umbrella/webgl-obj/

    Source:
    codeberg.org/thi.ng/umbrella/s

    Alternatively to stream parsing, there's also a generator/co-routine based version. This can be used standalone or together with thi.ng/fibers to better control the time slicing behavior when parsing large model files (tens or hundreds of MB) and so gives fine-grained control to avoid blocking the main UI thread:

    import { timeSlice } from "@thi.ng/fibers";

    const response = await fetch(MODEL_URL);
    const src = await response.text();
    // parse in 10 millisecond time slices
    const model = await timeSlice(parseOBJGenerator(src), 10).run().promise();

    More background info & discussion for those interested:
    codeberg.org/thi.ng/umbrella/p

    #OpenSource #Stream #Mesh #OBJ #WebGL #TypeScript #JavaScript

  32. New #ThingUmbrella release(s): Updated the thi.ng/geom-io-obj OBJ mesh parser to support stream parsing using async iterables. This allows direct piping fetch() responses to the parser.

    const response = await fetch(MODEL_URL);
    const objModel = await parseOBJFromStream(response.body);

    Also polished and published a related small example project for it (incl. arcball camera controller, which had an update too):

    Demo (Click & drag to rotate view, touchpad/mousewheel to zoom):
    demo.thi.ng/umbrella/webgl-obj/

    Source:
    codeberg.org/thi.ng/umbrella/s

    Alternatively to stream parsing, there's also a generator/co-routine based version. This can be used standalone or together with thi.ng/fibers to better control the time slicing behavior when parsing large model files (tens or hundreds of MB) and so gives fine-grained control to avoid blocking the main UI thread:

    import { timeSlice } from "@thi.ng/fibers";

    const response = await fetch(MODEL_URL);
    const src = await response.text();
    // parse in 10 millisecond time slices
    const model = await timeSlice(parseOBJGenerator(src), 10).run().promise();

    More background info & discussion for those interested:
    codeberg.org/thi.ng/umbrella/p

    #OpenSource #Stream #Mesh #OBJ #WebGL #TypeScript #JavaScript

  33. New #ThingUmbrella release(s): Updated the thi.ng/geom-io-obj OBJ mesh parser to support stream parsing using async iterables. This allows direct piping fetch() responses to the parser.

    const response = await fetch(MODEL_URL);
    const objModel = await parseOBJFromStream(response.body);

    Also polished and published a related small example project for it (incl. arcball camera controller, which had an update too):

    Demo (Click & drag to rotate view, touchpad/mousewheel to zoom):
    demo.thi.ng/umbrella/webgl-obj/

    Source:
    codeberg.org/thi.ng/umbrella/s

    Alternatively to stream parsing, there's also a generator/co-routine based version. This can be used standalone or together with thi.ng/fibers to better control the time slicing behavior when parsing large model files (tens or hundreds of MB) and so gives fine-grained control to avoid blocking the main UI thread:

    import { timeSlice } from "@thi.ng/fibers";

    const response = await fetch(MODEL_URL);
    const src = await response.text();
    // parse in 10 millisecond time slices
    const model = await timeSlice(parseOBJGenerator(src), 10).run().promise();

    More background info & discussion for those interested:
    codeberg.org/thi.ng/umbrella/p

    #OpenSource #Stream #Mesh #OBJ #WebGL #TypeScript #JavaScript

  34. New #ThingUmbrella release(s): Updated the thi.ng/geom-io-obj OBJ mesh parser to support stream parsing using async iterables. This allows direct piping fetch() responses to the parser.

    const response = await fetch(MODEL_URL);
    const objModel = await parseOBJFromStream(response.body);

    Also polished and published a related small example project for it (incl. arcball camera controller, which had an update too):

    Demo (Click & drag to rotate view, touchpad/mousewheel to zoom):
    demo.thi.ng/umbrella/webgl-obj/

    Source:
    codeberg.org/thi.ng/umbrella/s

    Alternatively to stream parsing, there's also a generator/co-routine based version. This can be used standalone or together with thi.ng/fibers to better control the time slicing behavior when parsing large model files (tens or hundreds of MB) and so gives fine-grained control to avoid blocking the main UI thread:

    import { timeSlice } from "@thi.ng/fibers";

    const response = await fetch(MODEL_URL);
    const src = await response.text();
    // parse in 10 millisecond time slices
    const model = await timeSlice(parseOBJGenerator(src), 10).run().promise();

    More background info & discussion for those interested:
    codeberg.org/thi.ng/umbrella/p

    #OpenSource #Stream #Mesh #OBJ #WebGL #TypeScript #JavaScript

  35. New #ThingUmbrella release(s): Updated the thi.ng/geom-io-obj OBJ mesh parser to support stream parsing using async iterables. This allows direct piping fetch() responses to the parser.

    const response = await fetch(MODEL_URL);
    const objModel = await parseOBJFromStream(response.body);

    Also polished and published a related small example project for it (incl. arcball camera controller, which had an update too):

    Demo (Click & drag to rotate view, touchpad/mousewheel to zoom):
    demo.thi.ng/umbrella/webgl-obj/

    Source:
    codeberg.org/thi.ng/umbrella/s

    Alternatively to stream parsing, there's also a generator/co-routine based version. This can be used standalone or together with thi.ng/fibers to better control the time slicing behavior when parsing large model files (tens or hundreds of MB) and so gives fine-grained control to avoid blocking the main UI thread:

    import { timeSlice } from "@thi.ng/fibers";

    const response = await fetch(MODEL_URL);
    const src = await response.text();
    // parse in 10 millisecond time slices
    const model = await timeSlice(parseOBJGenerator(src), 10).run().promise();

    More background info & discussion for those interested:
    codeberg.org/thi.ng/umbrella/p

    #OpenSource #Stream #Mesh #OBJ #WebGL #TypeScript #JavaScript

  36. Some weeks ago I got a cheap and fast TTArtisan 50mm/f1.2 prime lens to take better indoor pictures and close ups. Since it's fixed length and manual focus only, it's a very different kind of taking pictures, selecting/framing motifs, and often feels like a throwback to my first camera in the 1980s. I love it!

    Since the lens has quite noticeable vignetting, I found it interesting how that effect is showing up as curve in the image waveform...

    You can visualize your own images here:
    demo.thi.ng/umbrella/pixel-wav

    #TTArtisan #ThingUmbrella #DataViz #Photography

  37. Some weeks ago I got a cheap and fast TTArtisan 50mm/f1.2 prime lens to take better indoor pictures and close ups. Since it's fixed length and manual focus only, it's a very different kind of taking pictures, selecting/framing motifs, and often feels like a throwback to my first camera in the 1980s. I love it!

    Since the lens has quite noticeable vignetting, I found it interesting how that effect is showing up as curve in the image waveform...

    You can visualize your own images here:
    demo.thi.ng/umbrella/pixel-wav

    #TTArtisan #ThingUmbrella #DataViz #Photography

  38. Some weeks ago I got a cheap and fast TTArtisan 50mm/f1.2 prime lens to take better indoor pictures and close ups. Since it's fixed length and manual focus only, it's a very different kind of taking pictures, selecting/framing motifs, and often feels like a throwback to my first camera in the 1980s. I love it!

    Since the lens has quite noticeable vignetting, I found it interesting how that effect is showing up as curve in the image waveform...

    You can visualize your own images here:
    demo.thi.ng/umbrella/pixel-wav

    #TTArtisan #ThingUmbrella #DataViz #Photography

  39. Some weeks ago I got a cheap and fast TTArtisan 50mm/f1.2 prime lens to take better indoor pictures and close ups. Since it's fixed length and manual focus only, it's a very different kind of taking pictures, selecting/framing motifs, and often feels like a throwback to my first camera in the 1980s. I love it!

    Since the lens has quite noticeable vignetting, I found it interesting how that effect is showing up as curve in the image waveform...

    You can visualize your own images here:
    demo.thi.ng/umbrella/pixel-wav

    #TTArtisan #ThingUmbrella #DataViz #Photography

  40. Some weeks ago I got a cheap and fast TTArtisan 50mm/f1.2 prime lens to take better indoor pictures and close ups. Since it's fixed length and manual focus only, it's a very different kind of taking pictures, selecting/framing motifs, and often feels like a throwback to my first camera in the 1980s. I love it!

    Since the lens has quite noticeable vignetting, I found it interesting how that effect is showing up as curve in the image waveform...

    You can visualize your own images here:
    demo.thi.ng/umbrella/pixel-wav

    #TTArtisan #ThingUmbrella #DataViz #Photography

  41. Remembering dear Roman Verostko, who died this month two years ago, aged 94. An highly influential figure, not just for algorithmic art in general, but also for younger me personally, after meeting him during a panel discussion at the Victoria & Albert Museum in London and then corresponding for several years after...

    Living as a monk and ordained priest in the 1950/60s, he absolutely cherished his limited computer time which he had first access to as student. The more he learned about automata, automatic drawing, algorithms, rule-based methods, natural processes etc. the more his belief in religion (vs. spirituality) and in an omniscient creator was fundamentally challenged, causing years of deep internal turmoil and eventually leading him to leave the monastery to lead a secular life dedicated to making art as means to finding/reconciling answers.

    Even though both of our lives (and works) couldn't have been more different, we quickly found a kindred spirit and shared an awe of nature as primary source of inspiration. I'm sad we never met again in person, but his story and insights have stayed with me...

    (Remembering him today as I'm sorting through older pieces of mine, and it was him who originally encouraged me to investigate more plotter-based art forms/techniques, an advice I only heeded over a decade later... 🫶)

    RIP 🖤

    #TextureTuesday #AlgorithmicArt #PlotterArt #PenPlotter #Axidraw #ThingUmbrella

  42. Remembering dear Roman Verostko, who died this month two years ago, aged 94. An highly influential figure, not just for algorithmic art in general, but also for younger me personally, after meeting him during a panel discussion at the Victoria & Albert Museum in London and then corresponding for several years after...

    Living as a monk and ordained priest in the 1950/60s, he absolutely cherished his limited computer time which he had first access to as student. The more he learned about automata, automatic drawing, algorithms, rule-based methods, natural processes etc. the more his belief in religion (vs. spirituality) and in an omniscient creator was fundamentally challenged, causing years of deep internal turmoil and eventually leading him to leave the monastery to lead a secular life dedicated to making art as means to finding/reconciling answers.

    Even though both of our lives (and works) couldn't have been more different, we quickly found a kindred spirit and shared an awe of nature as primary source of inspiration. I'm sad we never met again in person, but his story and insights have stayed with me...

    (Remembering him today as I'm sorting through older pieces of mine, and it was him who originally encouraged me to investigate more plotter-based art forms/techniques, an advice I only heeded over a decade later... 🫶)

    RIP 🖤

    #TextureTuesday #AlgorithmicArt #PlotterArt #PenPlotter #Axidraw #ThingUmbrella

  43. Remembering dear Roman Verostko, who died this month two years ago, aged 94. An highly influential figure, not just for algorithmic art in general, but also for younger me personally, after meeting him during a panel discussion at the Victoria & Albert Museum in London and then corresponding for several years after...

    Living as a monk and ordained priest in the 1950/60s, he absolutely cherished his limited computer time which he had first access to as student. The more he learned about automata, automatic drawing, algorithms, rule-based methods, natural processes etc. the more his belief in religion (vs. spirituality) and in an omniscient creator was fundamentally challenged, causing years of deep internal turmoil and eventually leading him to leave the monastery to lead a secular life dedicated to making art as means to finding/reconciling answers.

    Even though both of our lives (and works) couldn't have been more different, we quickly found a kindred spirit and shared an awe of nature as primary source of inspiration. I'm sad we never met again in person, but his story and insights have stayed with me...

    (Remembering him today as I'm sorting through older pieces of mine, and it was him who originally encouraged me to investigate more plotter-based art forms/techniques, an advice I only heeded over a decade later... 🫶)

    RIP 🖤

    #TextureTuesday #AlgorithmicArt #PlotterArt #PenPlotter #Axidraw #ThingUmbrella

  44. Remembering dear Roman Verostko, who died this month two years ago, aged 94. An highly influential figure, not just for algorithmic art in general, but also for younger me personally, after meeting him during a panel discussion at the Victoria & Albert Museum in London and then corresponding for several years after...

    Living as a monk and ordained priest in the 1950/60s, he absolutely cherished his limited computer time which he had first access to as student. The more he learned about automata, automatic drawing, algorithms, rule-based methods, natural processes etc. the more his belief in religion (vs. spirituality) and in an omniscient creator was fundamentally challenged, causing years of deep internal turmoil and eventually leading him to leave the monastery to lead a secular life dedicated to making art as means to finding/reconciling answers.

    Even though both of our lives (and works) couldn't have been more different, we quickly found a kindred spirit and shared an awe of nature as primary source of inspiration. I'm sad we never met again in person, but his story and insights have stayed with me...

    (Remembering him today as I'm sorting through older pieces of mine, and it was him who originally encouraged me to investigate more plotter-based art forms/techniques, an advice I only heeded over a decade later... 🫶)

    RIP 🖤

    #TextureTuesday #AlgorithmicArt #PlotterArt #PenPlotter #Axidraw #ThingUmbrella

  45. Remembering dear Roman Verostko, who died this month two years ago, aged 94. An highly influential figure, not just for algorithmic art in general, but also for younger me personally, after meeting him during a panel discussion at the Victoria & Albert Museum in London and then corresponding for several years after...

    Living as a monk and ordained priest in the 1950/60s, he absolutely cherished his limited computer time which he had first access to as student. The more he learned about automata, automatic drawing, algorithms, rule-based methods, natural processes etc. the more his belief in religion (vs. spirituality) and in an omniscient creator was fundamentally challenged, causing years of deep internal turmoil and eventually leading him to leave the monastery to lead a secular life dedicated to making art as means to finding/reconciling answers.

    Even though both of our lives (and works) couldn't have been more different, we quickly found a kindred spirit and shared an awe of nature as primary source of inspiration. I'm sad we never met again in person, but his story and insights have stayed with me...

    (Remembering him today as I'm sorting through older pieces of mine, and it was him who originally encouraged me to investigate more plotter-based art forms/techniques, an advice I only heeded over a decade later... 🫶)

    RIP 🖤

    #TextureTuesday #AlgorithmicArt #PlotterArt #PenPlotter #Axidraw #ThingUmbrella

  46. CW: Fundraising for Open Source work & maintenance

    I don't do these often (only once or twice a year, if at all), but since I just lost the main sponsor of my open source work (forever grateful for their long & major support!), I urgently need to reach out to other people (especially users) for financial help with the continued development, documentation and maintenance efforts (incl. hosting costs) of the primarily 215 TypeScript libraries and 185 example projects in thi.ng/umbrella, but also other existing & still unreleased work/projects/tools (also Zig, Clojure)... The breadth and depth of the larger project is impossible to summarize (see project readme for an overview)

    I'm regularly posting updates related to these projects (and examples) using the #ThingUmbrella and #HowToThing hashtags.

    Being between roles, these donations are my only income at current, so every little helps! The projects have been in active long term development (some of them since 2016). In a typical irony of the universe kind of event, just yesterday the projects were featured on the frontpage of Hacker News[1] for over 12 hours and here's what some people had to say:

    "this is a absolutely remarkable set of libraries covering all kinds of nooks and cranies. It's worth putting on everyones list."

    "thi.ng is great and should really get more attention. The packages have a very clean and atomic structure, you can easily pick one or more and use them in your project."

    "This has been around for a long time and I've always been so surprised it has had seemingly so little traction outside of the author's own projects. The love and care and thoughtfulness of every library has always been so great to explore."

    If you have any questions, please reach out here (or via DM) or the issue tracker on Codeberg:

    codeberg.org/thi.ng/umbrella/i

    (I'm not always able to help [esp. when there are super detailed long requests/questions], but I'm doing my best to be helpful...)

    Deep gratitude and thank you to all my other supporters for your ongoing help and new ones for your consideration. Possible ways of funding are listed here (i.e. Liberapay, Stripe, Github Sponsors, Patreon):

    codeberg.org/thi.ng/umbrella/s

    🙏🫶

    Happy coding!

    [1] mastodon.thi.ng/@toxi/11672061

    #OpenSource #ThingUmbrella #Fundraising

  47. CW: Fundraising for Open Source work & maintenance

    I don't do these often (only once or twice a year, if at all), but since I just lost the main sponsor of my open source work (forever grateful for their long & major support!), I urgently need to reach out to other people (especially users) for financial help with the continued development, documentation and maintenance efforts (incl. hosting costs) of the primarily 215 TypeScript libraries and 185 example projects in thi.ng/umbrella, but also other existing & still unreleased work/projects/tools (also Zig, Clojure)... The breadth and depth of the larger project is impossible to summarize (see project readme for an overview)

    I'm regularly posting updates related to these projects (and examples) using the #ThingUmbrella and #HowToThing hashtags.

    Being between roles, these donations are my only income at current, so every little helps! The projects have been in active long term development (some of them since 2016). In a typical irony of the universe kind of event, just yesterday the projects were featured on the frontpage of Hacker News[1] for over 12 hours and here's what some people had to say:

    "this is a absolutely remarkable set of libraries covering all kinds of nooks and cranies. It's worth putting on everyones list."

    "thi.ng is great and should really get more attention. The packages have a very clean and atomic structure, you can easily pick one or more and use them in your project."

    "This has been around for a long time and I've always been so surprised it has had seemingly so little traction outside of the author's own projects. The love and care and thoughtfulness of every library has always been so great to explore."

    If you have any questions, please reach out here (or via DM) or the issue tracker on Codeberg:

    codeberg.org/thi.ng/umbrella/i

    (I'm not always able to help [esp. when there are super detailed long requests/questions], but I'm doing my best to be helpful...)

    Deep gratitude and thank you to all my other supporters for your ongoing help and new ones for your consideration. Possible ways of funding are listed here (i.e. Liberapay, Stripe, Github Sponsors, Patreon):

    codeberg.org/thi.ng/umbrella/s

    🙏🫶

    Happy coding!

    [1] mastodon.thi.ng/@toxi/11672061

    #OpenSource #ThingUmbrella #Fundraising

  48. CW: Fundraising for Open Source work & maintenance

    I don't do these often (only once or twice a year, if at all), but since I just lost the main sponsor of my open source work (forever grateful for their long & major support!), I urgently need to reach out to other people (especially users) for financial help with the continued development, documentation and maintenance efforts (incl. hosting costs) of the primarily 215 TypeScript libraries and 185 example projects in thi.ng/umbrella, but also other existing & still unreleased work/projects/tools (also Zig, Clojure)... The breadth and depth of the larger project is impossible to summarize (see project readme for an overview)

    I'm regularly posting updates related to these projects (and examples) using the #ThingUmbrella and #HowToThing hashtags.

    Being between roles, these donations are my only income at current, so every little helps! The projects have been in active long term development (some of them since 2016). In a typical irony of the universe kind of event, just yesterday the projects were featured on the frontpage of Hacker News[1] for over 12 hours and here's what some people had to say:

    "this is a absolutely remarkable set of libraries covering all kinds of nooks and cranies. It's worth putting on everyones list."

    "thi.ng is great and should really get more attention. The packages have a very clean and atomic structure, you can easily pick one or more and use them in your project."

    "This has been around for a long time and I've always been so surprised it has had seemingly so little traction outside of the author's own projects. The love and care and thoughtfulness of every library has always been so great to explore."

    If you have any questions, please reach out here (or via DM) or the issue tracker on Codeberg:

    codeberg.org/thi.ng/umbrella/i

    (I'm not always able to help [esp. when there are super detailed long requests/questions], but I'm doing my best to be helpful...)

    Deep gratitude and thank you to all my other supporters for your ongoing help and new ones for your consideration. Possible ways of funding are listed here (i.e. Liberapay, Stripe, Github Sponsors, Patreon):

    codeberg.org/thi.ng/umbrella/s

    🙏🫶

    Happy coding!

    [1] mastodon.thi.ng/@toxi/11672061

    #OpenSource #ThingUmbrella #Fundraising

  49. CW: Fundraising for Open Source work & maintenance

    I don't do these often (only once or twice a year, if at all), but since I just lost the main sponsor of my open source work (forever grateful for their long & major support!), I urgently need to reach out to other people (especially users) for financial help with the continued development, documentation and maintenance efforts (incl. hosting costs) of the primarily 215 TypeScript libraries and 185 example projects in thi.ng/umbrella, but also other existing & still unreleased work/projects/tools (also Zig, Clojure)... The breadth and depth of the larger project is impossible to summarize (see project readme for an overview)

    I'm regularly posting updates related to these projects (and examples) using the #ThingUmbrella and #HowToThing hashtags.

    Being between roles, these donations are my only income at current, so every little helps! The projects have been in active long term development (some of them since 2016). In a typical irony of the universe kind of event, just yesterday the projects were featured on the frontpage of Hacker News[1] for over 12 hours and here's what some people had to say:

    "this is a absolutely remarkable set of libraries covering all kinds of nooks and cranies. It's worth putting on everyones list."

    "thi.ng is great and should really get more attention. The packages have a very clean and atomic structure, you can easily pick one or more and use them in your project."

    "This has been around for a long time and I've always been so surprised it has had seemingly so little traction outside of the author's own projects. The love and care and thoughtfulness of every library has always been so great to explore."

    If you have any questions, please reach out here (or via DM) or the issue tracker on Codeberg:

    codeberg.org/thi.ng/umbrella/i

    (I'm not always able to help [esp. when there are super detailed long requests/questions], but I'm doing my best to be helpful...)

    Deep gratitude and thank you to all my other supporters for your ongoing help and new ones for your consideration. Possible ways of funding are listed here (i.e. Liberapay, Stripe, Github Sponsors, Patreon):

    codeberg.org/thi.ng/umbrella/s

    🙏🫶

    Happy coding!

    [1] mastodon.thi.ng/@toxi/11672061

    #OpenSource #ThingUmbrella #Fundraising

  50. CW: Fundraising for Open Source work & maintenance

    I don't do these often (only once or twice a year, if at all), but since I just lost the main sponsor of my open source work (forever grateful for their long & major support!), I urgently need to reach out to other people (especially users) for financial help with the continued development, documentation and maintenance efforts (incl. hosting costs) of the primarily 215 TypeScript libraries and 185 example projects in thi.ng/umbrella, but also other existing & still unreleased work/projects/tools (also Zig, Clojure)... The breadth and depth of the larger project is impossible to summarize (see project readme for an overview)

    I'm regularly posting updates related to these projects (and examples) using the #ThingUmbrella and #HowToThing hashtags.

    Being between roles, these donations are my only income at current, so every little helps! The projects have been in active long term development (some of them since 2016). In a typical irony of the universe kind of event, just yesterday the projects were featured on the frontpage of Hacker News[1] for over 12 hours and here's what some people had to say:

    "this is a absolutely remarkable set of libraries covering all kinds of nooks and cranies. It's worth putting on everyones list."

    "thi.ng is great and should really get more attention. The packages have a very clean and atomic structure, you can easily pick one or more and use them in your project."

    "This has been around for a long time and I've always been so surprised it has had seemingly so little traction outside of the author's own projects. The love and care and thoughtfulness of every library has always been so great to explore."

    If you have any questions, please reach out here (or via DM) or the issue tracker on Codeberg:

    codeberg.org/thi.ng/umbrella/i

    (I'm not always able to help [esp. when there are super detailed long requests/questions], but I'm doing my best to be helpful...)

    Deep gratitude and thank you to all my other supporters for your ongoing help and new ones for your consideration. Possible ways of funding are listed here (i.e. Liberapay, Stripe, Github Sponsors, Patreon):

    codeberg.org/thi.ng/umbrella/s

    🙏🫶

    Happy coding!

    [1] mastodon.thi.ng/@toxi/11672061

    #OpenSource #ThingUmbrella #Fundraising

  51. Since it seems to come up every single time thi.ng is mentioned on HN or Reddit: Here's another partial clarification why and when the transition from originally mostly Clojure/ClojureScript to mostly TypeScript occurred:

    news.ycombinator.com/item?id=4

    It's not a comprehensive answer, but thi.ng always was a polyglot project. There're also parts written in (and for):

    There are infrastructure packages to simplify creation of ad hoc DSLs, their transpilation or interpretation, but also interop with WASM (so far mostly geared towards & tested with Zig), for example:

    In general, thi.ng projects range from super high level computational design concepts to low-level primitives like memory allocators and memory/data layout management (e.g. thi.ng/tinyalloc, thi.ng/malloc, thi.ng/simd, thi.ng/soa) and a huge spectrum of other things in between...

    #ThingUmbrella

  52. Since it seems to come up every single time thi.ng is mentioned on HN or Reddit: Here's another partial clarification why and when the transition from originally mostly Clojure/ClojureScript to mostly TypeScript occurred:

    news.ycombinator.com/item?id=4

    It's not a comprehensive answer, but thi.ng always was a polyglot project. There're also parts written in (and for):

    There are infrastructure packages to simplify creation of ad hoc DSLs, their transpilation or interpretation, but also interop with WASM (so far mostly geared towards & tested with Zig), for example:

    In general, thi.ng projects range from super high level computational design concepts to low-level primitives like memory allocators and memory/data layout management (e.g. thi.ng/tinyalloc, thi.ng/malloc, thi.ng/simd, thi.ng/soa) and a huge spectrum of other things in between...

    #ThingUmbrella

  53. Since it seems to come up every single time thi.ng is mentioned on HN or Reddit: Here's another partial clarification why and when the transition from originally mostly Clojure/ClojureScript to mostly TypeScript occurred:

    news.ycombinator.com/item?id=4

    It's not a comprehensive answer, but thi.ng always was a polyglot project. There're also parts written in (and for):

    There are infrastructure packages to simplify creation of ad hoc DSLs, their transpilation or interpretation, but also interop with WASM (so far mostly geared towards & tested with Zig), for example:

    In general, thi.ng projects range from super high level computational design concepts to low-level primitives like memory allocators and memory/data layout management (e.g. thi.ng/tinyalloc, thi.ng/malloc, thi.ng/simd, thi.ng/soa) and a huge spectrum of other things in between...

    #ThingUmbrella

  54. Since it seems to come up every single time thi.ng is mentioned on HN or Reddit: Here's another partial clarification why and when the transition from originally mostly Clojure/ClojureScript to mostly TypeScript occurred:

    news.ycombinator.com/item?id=4

    It's not a comprehensive answer, but thi.ng always was a polyglot project. There're also parts written in (and for):

    There are infrastructure packages to simplify creation of ad hoc DSLs, their transpilation or interpretation, but also interop with WASM (so far mostly geared towards & tested with Zig), for example:

    In general, thi.ng projects range from super high level computational design concepts to low-level primitives like memory allocators and memory/data layout management (e.g. thi.ng/tinyalloc, thi.ng/malloc, thi.ng/simd, thi.ng/soa) and a huge spectrum of other things in between...

    #ThingUmbrella

  55. Since it seems to come up every single time thi.ng is mentioned on HN or Reddit: Here's another partial clarification why and when the transition from originally mostly Clojure/ClojureScript to mostly TypeScript occurred:

    news.ycombinator.com/item?id=4

    It's not a comprehensive answer, but thi.ng always was a polyglot project. There're also parts written in (and for):

    There are infrastructure packages to simplify creation of ad hoc DSLs, their transpilation or interpretation, but also interop with WASM (so far mostly geared towards & tested with Zig), for example:

    In general, thi.ng projects range from super high level computational design concepts to low-level primitives like memory allocators and memory/data layout management (e.g. thi.ng/tinyalloc, thi.ng/malloc, thi.ng/simd, thi.ng/soa) and a huge spectrum of other things in between...

    #ThingUmbrella

  56. Recently, at the library...

    "Have you got their new book 'Silk switch system problem'?"
    "No. Is that the sequel to 'Equiconnected nanosky oasis'?"
    "What's that?"
    "Oh, you've never read the 'Magnetic haze cycle' series? That's just too bad. It's full of cool ideas like the ultra-iridescent opcode sentinel, infraconnected division boundary, or even beige frontier mirror..."
    "Dude!"
    "Yeah, it's real porcelain ultra-peak! Absolutely life changing epoch omnicurve vision!"
    "I did like 'Supraviolet ring department'..."
    "Well, in that case, I'd recommend 'Macroluminous shimmer facet' instead. It's a good intro to all the abundant assembly craft."

    In preparation for some name/passphrase generator and LLM-poisoning projects/tools, I updated my online procedural text editor to be able to export generator specs/recipes directly as TypeScript source code for easy integration into your own projects...

    The above generator is here (the entire recipe is part of this super long URL):

    demo.thi.ng/umbrella/procedura

    More project & syntax info here:
    thi.ng/proctext

    #Microfiction #ProcGen #ProceduralText #ThingUmbrella #DSL #TypeScript #LLMPoisoning #NoAI

  57. Recently, at the library...

    "Have you got their new book 'Silk switch system problem'?"
    "No. Is that the sequel to 'Equiconnected nanosky oasis'?"
    "What's that?"
    "Oh, you've never read the 'Magnetic haze cycle' series? That's just too bad. It's full of cool ideas like the ultra-iridescent opcode sentinel, infraconnected division boundary, or even beige frontier mirror..."
    "Dude!"
    "Yeah, it's real porcelain ultra-peak! Absolutely life changing epoch omnicurve vision!"
    "I did like 'Supraviolet ring department'..."
    "Well, in that case, I'd recommend 'Macroluminous shimmer facet' instead. It's a good intro to all the abundant assembly craft."

    In preparation for some name/passphrase generator and LLM-poisoning projects/tools, I updated my online procedural text editor to be able to export generator specs/recipes directly as TypeScript source code for easy integration into your own projects...

    The above generator is here (the entire recipe is part of this super long URL):

    demo.thi.ng/umbrella/procedura

    More project & syntax info here:
    thi.ng/proctext

    #Microfiction #ProcGen #ProceduralText #ThingUmbrella #DSL #TypeScript #LLMPoisoning #NoAI

  58. Recently, at the library...

    "Have you got their new book 'Silk switch system problem'?"
    "No. Is that the sequel to 'Equiconnected nanosky oasis'?"
    "What's that?"
    "Oh, you've never read the 'Magnetic haze cycle' series? That's just too bad. It's full of cool ideas like the ultra-iridescent opcode sentinel, infraconnected division boundary, or even beige frontier mirror..."
    "Dude!"
    "Yeah, it's real porcelain ultra-peak! Absolutely life changing epoch omnicurve vision!"
    "I did like 'Supraviolet ring department'..."
    "Well, in that case, I'd recommend 'Macroluminous shimmer facet' instead. It's a good intro to all the abundant assembly craft."

    In preparation for some name/passphrase generator and LLM-poisoning projects/tools, I updated my online procedural text editor to be able to export generator specs/recipes directly as TypeScript source code for easy integration into your own projects...

    The above generator is here (the entire recipe is part of this super long URL):

    demo.thi.ng/umbrella/procedura

    More project & syntax info here:
    thi.ng/proctext

    #Microfiction #ProcGen #ProceduralText #ThingUmbrella #DSL #TypeScript #LLMPoisoning #NoAI

  59. Recently, at the library...

    "Have you got their new book 'Silk switch system problem'?"
    "No. Is that the sequel to 'Equiconnected nanosky oasis'?"
    "What's that?"
    "Oh, you've never read the 'Magnetic haze cycle' series? That's just too bad. It's full of cool ideas like the ultra-iridescent opcode sentinel, infraconnected division boundary, or even beige frontier mirror..."
    "Dude!"
    "Yeah, it's real porcelain ultra-peak! Absolutely life changing epoch omnicurve vision!"
    "I did like 'Supraviolet ring department'..."
    "Well, in that case, I'd recommend 'Macroluminous shimmer facet' instead. It's a good intro to all the abundant assembly craft."

    In preparation for some name/passphrase generator and LLM-poisoning projects/tools, I updated my online procedural text editor to be able to export generator specs/recipes directly as TypeScript source code for easy integration into your own projects...

    The above generator is here (the entire recipe is part of this super long URL):

    demo.thi.ng/umbrella/procedura

    More project & syntax info here:
    thi.ng/proctext

    #Microfiction #ProcGen #ProceduralText #ThingUmbrella #DSL #TypeScript #LLMPoisoning #NoAI

  60. Recently, at the library...

    "Have you got their new book 'Silk switch system problem'?"
    "No. Is that the sequel to 'Equiconnected nanosky oasis'?"
    "What's that?"
    "Oh, you've never read the 'Magnetic haze cycle' series? That's just too bad. It's full of cool ideas like the ultra-iridescent opcode sentinel, infraconnected division boundary, or even beige frontier mirror..."
    "Dude!"
    "Yeah, it's real porcelain ultra-peak! Absolutely life changing epoch omnicurve vision!"
    "I did like 'Supraviolet ring department'..."
    "Well, in that case, I'd recommend 'Macroluminous shimmer facet' instead. It's a good intro to all the abundant assembly craft."

    In preparation for some name/passphrase generator and LLM-poisoning projects/tools, I updated my online procedural text editor to be able to export generator specs/recipes directly as TypeScript source code for easy integration into your own projects...

    The above generator is here (the entire recipe is part of this super long URL):

    demo.thi.ng/umbrella/procedura

    More project & syntax info here:
    thi.ng/proctext

    #Microfiction #ProcGen #ProceduralText #ThingUmbrella #DSL #TypeScript #LLMPoisoning #NoAI