Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

76% Positive

Analyzed from 1412 words in the discussion.

Trending Topics

#thi#https#clojure#library#more#com#typescript#project#art#used

Discussion (34 Comments)Read Original on HackerNews

kkukshtelabout 9 hours ago
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.
sleepybrettabout 5 hours ago
I love karsten and have been following his work for a long long time. Used/Use his old toxiclibs library extensively both in processing and java. Have ported parts of it to golang for personal use. I want to say he also had some librarys for openframeworks/c++ and I probably used those as well (it was perhaps someone elses rough port of toxic to c++).

Originally I bounced off this because of clojure, it just wasn't worth the time to learn. Now it's typescript.. another language I'm just not interested in learning. I'm happy to port whatever bits of the library I want to use to a language I prefer when I need it.

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

toxmeisterabout 2 hours ago
Thanks, Brett! <3 :)
lioetersabout 14 hours ago
Main monorepo: https://codeberg.org/thi.ng/umbrella

Looks like a collection of many useful general-purpose dependency-free modules written in TypeScript.

guidoschmidtabout 11 hours ago
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.

fun fact: you can reach each package from a https://thi.ng/PACKAGE short URL, e.g. https://thi.ng/color.

I started using the thi.ng collection a couple of years ago when I had more time for creative code sketching (https://guidoschmidt.cc/sketchbook, father of two now, with full time work + family its hard for me to find time and motivation at the moment. Hopefully will get back to it more in the future), still only scratched the surface yet.

https://www.creativeapplications.net/people/karsten-schmidt/ has a great history of Karsten's work. Also worth checking out his mastodon profile: https://mastodon.thi.ng/@toxi

lioetersabout 7 hours ago
Thanks for sharing, love the sketchbook. I'm into tree structures, cellular automata and other models of computation, fractals, etc., so immediately I resonated with your artworks. Oh and you do light art too, that sounds cool! I imagine there are tons of fun things you can do with mathematics, geometry, and light projection.

Of the thi.ng library I've only looked at a few modules so far but I really like the clean organization, functional style, and how each module is independently useful. The whole thing has good taste, a quality that's hard to explain but "you know it when you see it." I'm looking forward to playing with it, like a new box of Lego blocks, haha.

nheckerabout 5 hours ago
No comment of value other than to say thank you for putting (and keeping) your art out there. Genuinely beautiful, some of it. And the generative towers gave me a chuckle; that was fun. GL with the family. I do believe I'll have a few new desktop backgrounds after today : )
twallaabout 3 hours ago
these are lovely my guy
ge96about 4 hours ago
bubblemania that could be a video on loop at a bar or club
p0w3n3dabout 12 hours ago
I see very nasty GPU bugs on this page. never witnessed it before. My laptop is macbook m3.

I managed to record them https://youtu.be/9EpfeUbkPT8

toxmeisterabout 2 hours ago
FWIW this website is almost 6 years old and this is the first time I'm seeing this issue. The cubes are just simple 3D CSS animations/transitions, so not quite sure what would be causing this...
thenthenthenabout 11 hours ago
Almost wondering if it’s intentional! Pretty bug!
lhousaabout 10 hours ago
the flicker gets really bad on my browser
Altern4tiveAccabout 7 hours ago
https://codeberg.org/thi.ng/umbrella/src/branch/develop/pack...

That's an interesting take at ECS, seems to do lots of optimizations under the hood too.

I'm surprised to not have heard of those libraries until now.

evolve2kabout 4 hours ago
Gah x 2

Gah #1 - Stinky notes of AI generated text in the opening explainations. Please just write it yourself

Gah #2 - Pinch zooming the page on iOS erroneously causes a full page reload. Not accessible. Totally frustrating.

Creating a project that seeks to “value the craft”, pay attention to the insides of the cabinets you are building.

toxmeisterabout 2 hours ago
#1 It's just stinky me responsible. No AI's been used (btw. the site is from 2020), neither on the website nor for any of the projects...

#2 This is potentially a Safari bug with interactive SVGs on iOS. JS usage on this site is minimal.

haddrabout 5 hours ago
Is that monorepo heat map visualisation also reproducible for other repos? It kicks ass
toxmeisterabout 2 hours ago
Not at the moment, but I was originally planning to put out the tooling for generating these visualizations. All created from local Git repos and some additional JSON metadata, completely dogfooding various thi.ng packages/projects...
dimovichabout 14 hours ago
thi-ng/geom is my favorite Clojure project.
uxcolumboabout 14 hours ago
What makes it your favorite Clojure project?
geokonabout 12 hours ago
It's extremely modular and simple and extensible. It's a collecting of small libaries that makes generating arbitrary vector graphics extremely fun. You have a base SVG layer and on top you have a charting library, 3D models and other stuff. It also comes with a ton of cool math mini libraries. If something is missing it's very easy to write your own.

All the pieces are very decoupled and in pure Clojure (unlike a lot of the heavier scicloj stuff that's being use nowadays)

dimovichabout 2 hours ago
@geokon made some good points. The library is very well thought out, easy to use, simple, data driven, composable. The author is eager to help with questions.
modemuserabout 12 hours ago
When the five cubes a bit down on the page spin diagonally, my whole browser window including address bar and tab bar starts glitching. Chrome on macOS.
thenthenthenabout 11 hours ago
On ios safari the bottom 5 cubes are just 1 flat pancake, chrome ios does render the cubes but have slight artifacting on the edges mmmmm
uxcolumboabout 14 hours ago
I believe the new libs are now all in TS and not Clojure anymore.

Does that mean TS is better suited for computational art?

Or are there other reasons why this lib was moved to TS?

geokonabout 11 hours ago
You can find his talk about it a bit on Twitter and in the Github issues. But as far as I remember it mostly boils down to the fact that thing/geom got very little traction and external contributions. He developed this huge ecosystem on his own to make digital art but it wasn't being really picked up by others. Digital art is typically quite collaborative with people giving workshops and stuff. The switch to TS was so that other's would join up and develop the library together.

Note that part of the problem was that the library was written in a highly unusual literate style. So you had to clone the repo, then use Emac's Orgmode to tangle it to get the Clojure source code. This created a lot of friction for people to contribute.

Also before deps.edn (Clojure built-in dependency management) was added to the language you had to use leiningen which didn't make using a locally cloned fork as easy as it is now (now you just point to the library file directory and it "just works")

toxmeisterabout 2 hours ago
Author here. The move to TypeScript was due to multiple reasons, one of them as you mentioned. In these early years, there were very few people in the Clojure community which had an interest in these topics (general visualization/geometry related), and which wasn't just about art btw. Still, I managed to teach a dozen or so workshops from 2011-2017 and form a small community. In hindsight, Clojure/ClojureScript took off much more around 2018/19, 1-2 years after I left... c'est la vie

From a technical POV, the main reasons I started looking at other languages (Go, C11, TypeScript) back in 2015/16 were: Better performance and less effort required for working with low-level primitives & APIs. I also got more interested again in embedded development (wrote a long blog post about it[1]). The final decision was when I started using thi.ng for a large 5 year computational design tool/project at Nike...

Many of the language features introduced with ES6 (esp. generators, iterables, spread operator, Map/Set, Promises), suddenly made Clojure/ClojureScript feel much more clunky and I felt I can have a lot more fine grained control and performance with much less ceremony/effort, once I implemented (and usually also vastly extended!) some of the key Clojure features/datatypes myself... Working with modern Web APIs (WebGL, WebAudio, WASM, async/await etc.) all became so much easier...

The literate programming (LP) approach I used initially (between 2011-2016) was using the "standard" Emacs OrgMode Babel setup which I found an incredible amplifier for my work[2][3]. Emacs was widely used among the Clojure community back then, but LP itself as an approach _was_ unusual, still is, and scared people off...

[1] https://medium.com/@thi.ng/the-jacob-s-ladder-of-coding-4b12... [2] https://www.reddit.com/r/emacs/comments/9w8i2g/comment/ec7xv... [3] https://www.reddit.com/r/Clojure/comments/9deyxe/comment/e69...

toxmeisterabout 1 hour ago
Just to add to the above: It's not a comprehensive answer, but this always was a polyglot project. There're parts written in (and for):

- OpenCL interop (e.g. https://thi.ng/raymarchcl, https://thi.ng/simplecl)

- GLSL (e.g. https://thi.ng/shader-ast)

- C11 (e.g. https://github.com/thi-ng/c-thing, https://thi.ng/synstack)

- Zig (https://github.com/thi-ng/zig-thing)

- WASM (https://thi.ng/wasm-api)

- Forth (https://thi.ng/charlie)

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:

- https://thi.ng/parse

- https://thi.ng/pointfree

- https://thi.ng/lispy

- https://thi.ng/sexpr

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. https://thi.ng/tinyalloc, https://thi.ng/malloc, https://thi.ng/simd, https://thi.ng/soa) and a huge spectrum of other things in between...

WillAdamsabout 11 hours ago
I really wish that there was an agreed-upon/universally-accepted Literate Programming system (or that for a given system, sufficiently varied tools for availing oneself of them as to foster acceptance), but pretty much every programmer's approach is unique, incompatible, and a hurdle for anyone else to use their code....
simongrayabout 13 hours ago
> Or are there other reasons why this lib was moved to TS?

I'm pretty sure reach was the motivation. The author basically wrote his own TypeScript libraries duplicating a bunch of Clojure stuff, so the code is quite Clojure-like still.

toxmeisterabout 2 hours ago
Just wrote more about it here: https://news.ycombinator.com/item?id=48468029
hamburgererrorabout 14 hours ago
Is there a particular motivation for chosing Clojure?
OtomotOabout 14 hours ago
https://github.com/thi-ng/ there doesn't seem to be a lot of clojure anymore? Unless clojurescript is tagged as typescript in github that is?!
jdw64about 11 hours ago
Coooooooool
Advertisement