Advertisement · 728 × 90
#
Hashtag
#ThingUmbrella
Advertisement · 728 × 90
Original post on mastodon.thi.ng

#ReleaseThursday A historic moment in the https://thi.ng/umbrella microverse!

I just re-published all 214 projects, the first release referencing their new home at @Codeberg with updated links in all packages, examples, readmes and other documentation... 🎉

(Also added a prominent note […]

0 0 1 0
Original post on mastodon.thi.ng

PSA: Part of the ongoing #ThingUmbrella maintenance and migration to #Codeberg, I've written a script to batch delete 20600+ tags from the Git repo[1], basically any release tags older than 2023-01-01. There're still ~4600 tags remaining, covering all releases since that date […]

0 0 0 0
Cropped screenshot of the linked tool, showing the 1st of the three calculators.

Cropped screenshot of the linked tool, showing the 1st of the three calculators.

Cropped screenshot of the linked tool, showing the 2nd of the three calculators.

Cropped screenshot of the linked tool, showing the 2nd of the three calculators.

Cropped screenshot of the linked tool, showing the 3rd of the three calculators.

Cropped screenshot of the linked tool, showing the 3rd of the three calculators.

Started creating browser-based calculators for quickly computing a bunch of recurring things in darkroom processing, so far:

Scale amount by area:
Given reference dimensions and amount, compute scaled amount needed for new target dimensions.
Example: Compute […]

[Original post on mastodon.thi.ng]

0 0 0 0
Preview
Karsten Schmidt (@toxi@mastodon.thi.ng) Attached: 1 image Good Morning & welcome to #HowToThing #004 — Painlessly creating text-based plots to debug & visualize sequential data in a REPL-driven workflow. Here we're using https://thi.ng/dsp signal generators, but _any_ numeric array or iterable will work. Visualization via https://thi.ng/text-canvas (new versions of both packages have just been released...) Source code: https://gist.github.com/postspectacular/66d6b7c19612196c87cead5a6afd681d #ThingUmbrella #TypeScript #JavaScript #AsciiArt #DataViz #DSP #Tutorial

One from the archives for #TextmodeTuesday. The post might be 3 years old, but I'm still using these snippets almost daily to visualize and debug data whilst I'm working in the Node REPL...

https://mastodon.thi.ng/@toxi/110942967462856117

#ThingUmbrella #DataViz #REPL #Terminal

1 0 0 0
Original post on mastodon.thi.ng

PSA: Migrating the https://thi.ng/umbrella monorepo to Codeberg, including:

- updating thousands of links in ~970 files (readme's, media, API docs/snippets in source files, examples, wiki etc.)
- updated 215 package short links to point to new locations on Codeberg
- re-configured & re-uploaded […]

1 3 0 0
Original post on mastodon.thi.ng

As is somewhat customary, spring time is maintenance time and so this past week was again "infrastructure week" in #ThingUmbrella land, updating various tool scripts, switching to Rclone for uploading/syncing API docs, updating/pinning Prettier version & config, reformatting thousands of source […]

1 0 0 0
Original post on mastodon.thi.ng

Finally have been trying out https://github.com/boyter/scc for counting (unique) lines of code, comments, DRYness and complexity and getting a better and more aggregated overview of the scale of my https://thi.ng/umbrella monorepo. SCC is really much better and faster than what I've using […]

0 0 0 0
Video

It's Friday, spring is here (a bit too early) — it feels like a good day to share another minute recording of a variation of my Actiniaria piece which I worked on last spring and think also captures that much needed #BloomScrolling spirit...

See #Actiniaria […]

[Original post on mastodon.thi.ng]

3 1 0 0
Screenshot excerpt from the package readme, incl. a diagram illustrating query behavior. Direct link to this section: https://github.com/thi-ng/umbrella/blob/develop/packages/column-store/README.md#optimized-row-iteration

Screenshot excerpt from the package readme, incl. a diagram illustrating query behavior. Direct link to this section: https://github.com/thi-ng/umbrella/blob/develop/packages/column-store/README.md#optimized-row-iteration

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

Just also added a small section and diagram illustrating the extensive use of […]

[Original post on mastodon.thi.ng]

0 1 0 0

RE: https://mstdn.social/@inecas/116125098722422939

PSA: All the thi.ng subdomains should be working again. I upgraded Caddy yesterday and together with the recent DNS handling changes on Hetzner, Let's Encrypt challenges stopped working. All fixed again now...

#ThingUmbrella

0 0 0 0
Video

@bit101 @jonathanhogg Exactly! Since it's all so nonintuitive, some years ago I made this visualization to help me make sense of it and map out this funky max chroma boundary based on hue and luminance... The viz is for LCH, but Oklch looks very similar

Just […]

[Original post on mastodon.thi.ng]

0 0 2 0
Original post on mastodon.thi.ng

#ReleaseThursday 🎉 Just pushed a new version of the https://thi.ng/column-store database and query engine which adds support for new column types (fixed-size n-dimensional int/uint/float vectors) and RLE (run-length encoding) compression support for more column types. I also updated/extended the […]

2 1 0 0
Original post on mastodon.thi.ng

Random #ThingUmbrella tip & tidbit: I've been sourcing materials for a larger contact printing setup for my kallitype process, incl. a getting a much heavier ultraclear glass plate than what I've been using so far.

Using the https://thi.ng/units converter with its Lisp-like domain specific […]

0 1 0 0
A 3x3 grid of complex abstract shapes created via fluid simulations as described at the start of this thread. The images have a monochromatic blue tint (the underlying simulation is just producing a grayscale image)

A 3x3 grid of complex abstract shapes created via fluid simulations as described at the start of this thread. The images have a monochromatic blue tint (the underlying simulation is just producing a grayscale image)

Some more variations curated this AM... in love with these shapes & process!

(See start of this thread for context...)

#FluidSim #Simulation #Art #GenerativeArt #AbstractArt #NoAI #ThingUmbrella #TypeScript

8 0 0 0
Screenshot of a CLI/Terminal with the code example from the thi.ng/text-format-image readme and the resulting image output as part of the normal flow...

Screenshot of a CLI/Terminal with the code example from the thi.ng/text-format-image readme and the resulting image output as part of the normal flow...

Also new in #ThingUmbrella: The new https://thi.ng/text-format-image package provides conversion/formatting for bitmap output for CLI/Terminal apps, currently only via the widely supported iTerm2 format (see readme for details). Supports JPG/PNG (possibly […]

[Original post on mastodon.thi.ng]

0 2 0 0
Video

#Genuary10 #Genuary2026: Polar coordinates

Circular Fold (2022), an animated circle inversion loop. Made with #ThingUmbrella.

#Geometry #CircleInversion #Animation

1 2 0 0
Original post on mastodon.thi.ng

Wow, just noticed #ThingUmbrella reached 3700 stars on GitHub — I'm celebrating... 🤩🫠

Heartfelt thanks to all of you who've been helping along the way (in any shape & form) and been supporting this work for all these years and across different programming languages/camps! Merci beaucoup!!! Esp […]

1 3 1 0
Original post on mastodon.thi.ng

#ReleaseWednesday — Thanks to a user suggestion, I've added support for declarative canvas pixel density adjustments in the following packages:

- https://thi.ng/hiccup-canvas
- https://thi.ng/hdom-canvas
- https://thi.ng/rdom-canvas

By default canvas components defined via the latter two […]

0 1 0 0
Cropped screensho of a NodeJS REPL session showing an hexdump of a chunk of binary PDF data (trying to analyze why an earlier parse error occurred...)

Cropped screensho of a NodeJS REPL session showing an hexdump of a chunk of binary PDF data (trying to analyze why an earlier parse error occurred...)

Maybe a good opportunity to illustrate the purpose of one of the more uncommon packages in #ThingUmbrella: The https://thi.ng/hex package provides hexadecimal formatters for a variety of word sizes (4-64 bits) and also a customizable hex dump facility, which […]

[Original post on mastodon.thi.ng]

0 1 0 0
Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, almost 3D looking structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, almost 3D looking structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, with some parts showing almost geometric features vs others more organic-looking branching structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, with some parts showing almost geometric features vs others more organic-looking branching structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, showing the parallel evolution and fight between almost geometric features vs more organic-looking branching and noisy structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, showing the parallel evolution and fight between almost geometric features vs more organic-looking branching and noisy structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, showing the parallel evolution and fight between almost geometric features vs more organic-looking branching and noisy structures.

Abstract monochrome still image of a 1.5D multi-organism cellular automata simulation, showing the parallel evolution and fight between almost geometric features vs more organic-looking branching and noisy structures.

MonochromeEvolutionaryBioDigitalMultiCellularSymbiosisStruggle

(Selected stills from my infinitely evolving C-SCAPE project, 2022 - made with https://thi.ng/cellular et al...)

#MonochromeMonday #TextureTuesday #AbstractArt #EvolutionaryArt #GenerativeArt […]

[Original post on mastodon.thi.ng]

9 3 1 0
Syntax highlighted TypeScript sourcecode of the linked code example...

Syntax highlighted TypeScript sourcecode of the linked code example...

Tags are sets. Many apps support tagging of content, but most of them (incl. Mastodon) treat tags only as singular/isolated topic filters, akin to a flat folder-based approach. But tagging can be so, so much more powerful when treating tags as sets and […]

[Original post on mastodon.thi.ng]

1 0 0 0
Syntax colored TypeScript source code:

import { parseHtml } from "@thi.ng/hiccup-html-parse";
import { serialize } from "@thi.ng/hiccup-markdown";
import { arrayZipper, type Location } from "@thi.ng/zipper";

// load a Mastodon status via API
const res = await (
	await fetch("https://mastodon.thi.ng/api/v1/statuses/115464108396925195")
).json();

// parse HTML content into thing/hiccup format (nested JS arrays)
const parsed = parseHtml(res.content, {
	whitespace: true,
	ignoreAttribs: ["class"],
}).result!;

// structure of parsed example:
// [["p", {}, "text"], ["p", {}, ...], ...]

// recursively traverse result document/array using thi.ng/zipper
// and replace all <span> elements with their raw text body
let loc: Location<any> | undefined = arrayZipper(parsed);
while (loc) {
	loc = loc.next;
	if (Array.isArray(loc?.node) && loc?.node[0] == "span")
		loc = loc.replace(loc.node[2]);
	if (loc?.next == null) break;
}

// serialize hiccup to markdown
console. log(serialize(loc?.root, null));

/*
Result (in markdown format), omitted here due to alt text limits
*/

Syntax colored TypeScript source code: import { parseHtml } from "@thi.ng/hiccup-html-parse"; import { serialize } from "@thi.ng/hiccup-markdown"; import { arrayZipper, type Location } from "@thi.ng/zipper"; // load a Mastodon status via API const res = await ( await fetch("https://mastodon.thi.ng/api/v1/statuses/115464108396925195") ).json(); // parse HTML content into thing/hiccup format (nested JS arrays) const parsed = parseHtml(res.content, { whitespace: true, ignoreAttribs: ["class"], }).result!; // structure of parsed example: // [["p", {}, "text"], ["p", {}, ...], ...] // recursively traverse result document/array using thi.ng/zipper // and replace all <span> elements with their raw text body let loc: Location<any> | undefined = arrayZipper(parsed); while (loc) { loc = loc.next; if (Array.isArray(loc?.node) && loc?.node[0] == "span") loc = loc.replace(loc.node[2]); if (loc?.next == null) break; } // serialize hiccup to markdown console. log(serialize(loc?.root, null)); /* Result (in markdown format), omitted here due to alt text limits */

Been updating my personal Mastodon tooling to download and convert my bookmarked toots. Here's how little code is needed to download a single message and convert its HTML content into Markdown, all using these #ThingUmbrella packages:

- https://thi.ng/hiccup […]

[Original post on mastodon.thi.ng]

1 2 0 0
Screenshot of excerpt of the thi.ng/color package readme discussing color scheme strategies. Direct link to relevant section: https://github.com/thi-ng/umbrella/blob/develop/packages/color/README.md#color-theme-strategies

Screenshot of excerpt of the thi.ng/color package readme discussing color scheme strategies. Direct link to relevant section: https://github.com/thi-ng/umbrella/blob/develop/packages/color/README.md#color-theme-strategies

Screenshot of excerpt of the thi.ng/color package readme about declarative/parametric color scheme generation. Direct link to relevant section: https://github.com/thi-ng/umbrella/blob/develop/packages/color/README.md#color-theme-generation

Screenshot of excerpt of the thi.ng/color package readme about declarative/parametric color scheme generation. Direct link to relevant section: https://github.com/thi-ng/umbrella/blob/develop/packages/color/README.md#color-theme-generation

Screenshot of excerpt of the thi.ng/color-palettes package readme showing swatches of the most recently added themes...

Screenshot of excerpt of the thi.ng/color-palettes package readme showing swatches of the most recently added themes...

Some details about the recently updated/fixed https://thi.ng/color package: The color scheme creation strategy functions (analog/complementary/triadic/tetradic/monochrome etc.) are all accepting base colors in any format now, but do their computation and […]

[Original post on mastodon.thi.ng]

0 1 0 0
False-color barren glacial landscape near Bernina Pass, Switzerland.

False-color barren glacial landscape near Bernina Pass, Switzerland.

False-color high-alpine tundra landscape with large boulders.

False-color high-alpine tundra landscape with large boulders.

False-color sunset over a craggy cliff and forest during summer solstice.

False-color sunset over a craggy cliff and forest during summer solstice.

False-color forest reflecting in a mountain lake during early morning

False-color forest reflecting in a mountain lake during early morning

Some images from earlier this year, edited with https://demo.thi.ng/umbrella/webgl-channel-mixer/ (made with my #ThingUmbrella tools)...

#LandscapePhotography #Photography #Color #TypeScript #FalseColor

6 4 0 0
Original post on mastodon.thi.ng

An update: After several failed publish attempts, more searching, (re)reading and experimenting for the past 4 hours, I've now figured out a solution using #NPM granular access tokens... But to summarize & document the issues, in case someone else encounters the same pain points:

1) There seems […]

1 0 0 0
Video

Recursively subdividing/tessellating a hexagon with Catmull-Clark (made with unreleased thi.ng/geom-mesh pkg, anim is from March 2017)...

#TilingTuesday #Geometry #Subdivision #Mesh #ThingUmbrella

1 0 0 0
Video

Four ways (of many) recursively subdividing/tessellating a pentagon (made with https://thi.ng/geom-tessellate

#TilingTuesday #Geometry #Subdivision #ThingUmbrella

2 3 0 0
Video

A slow-motion version showing only the keyframes (without interpolation) of this transformation process...

#TilingTuesday #GenerativeArt #SDF #DistanceTransform #Lace #ThingUmbrella

0 2 0 0
Video

(Yet another) 1-minute excerpt of an #Umbra variation, one of my recent algorithmic/generative realtime animation art pieces, constantly evolving and exhibited exclusively on Layer.

Very much love this color theme, especially after ~15 seconds... 🤌

(See […]

[Original post on mastodon.thi.ng]

1 1 1 0
Video

Another 1-minute excerpt of an #Umbra variation, one of my recent algorithmic/generative realtime animation art pieces, constantly evolving and exhibited exclusively on Layer.

(See above hashtag for other clips)

Made with ❤️ and my opensource […]

[Original post on mastodon.thi.ng]

3 0 0 0