Thi.ng – open-source building blocks for computational design and art

nmstoker1 pts0 comments

thi.ng - Open source building blocks for computational design & art. Est. 2006 (TypeScript, Zig, GLSL, Clojure, C, SideFX Houdini)

thing<br>noun<br>Anything that is or may become an object of thought.<br>An approximate way to refer to an idea, subject, event, action, etc.<br>An object or entity that is not or cannot be named specifically.

Blog seriesOf umbrellas, transducers, reactive streams & mushrooms<br>Part 1 - Venturing into the land of thi.ng/umbrella...<br>Part 2 - Functions, Transducers, Reducers, Iterables<br>Part 3 - Convolutions, Cellular Automata<br>Part 4 - Disjoint Sets, Graphs, Distance Fields

What?<br>thi.ng is a truly manifold long-term project devoted to Computational Design. Not a framework, nor bound to any specific use case, environment or even language, it's a vast and mature set of complementing code libraries, which has organically grown to approx. 350 sub-projects , with at least half still being actively maintained. This site is a work in progress and so far merely a portal to these projects, though will ultimately serve as a comprehensive hub and archive of all related outputs. Only open source projects & educational resources are presented here.<br>Read more...<br>Who?<br>Created and maintained by Karsten Schmidt since 2006, the project has been supported by a small group of wonderful contributors. Over the past 28 years, Karsten has produced and contributed to hundreds of open source projects, including Processing and Clojure. He has written about, lectured and taught computational & generative design workshops at various universities. His work has been exhibited internationally, incl. Barbican, Victoria & Albert Museum London, MoMA New York, Garage Moscow, Design Museum Holon, CAFA Arts Museum Beijing.

Why?<br>Originally, thi.ng was created to help realise Karsten's diverse work projects/commissions and experimental design research, forming an open toolkit we can grow and control as much as possible. Over the years, the conceptual scope has expanded dramatically. Early thi.ng projects began when Computational Design was still in its infancy. With only limited open source tooling in that domain available at the time, some of our projects were pioneering and helping to fill that niche and using these tools for teaching/evangelizing became other primary project goals. Altogether, an additional 200+ examples are bundled with the largest projects in the collection, with more being added regularly.

How?<br>thi.ng is based on a bottom-up growth & design philosophy: small pieces with narrow scope and utility recombine to fulfil demands of ever changing use cases in similarly varied fields. Because of the wide scope, we're usually working on projects in a round-robin manner, based on feedback and loosely defined long-term goals, which may (and are encouraged to) shift over time. This has included large rounds of refactoring, adopting new languages, platforms or techniques and occasionally leaving others behind, once a project is in a stable condition. Some of the oldest projects here are still enjoying an active following, even after almost 10 years since their last official release...

One endeavor, hundreds of facets… This current site is a precursor of an ongoing effort to create a semantic graph of all projects, assets and relationships - a massive undertaking, which already spawned several new projects in the collection. Until ready, the following interactive tag cloud is an attempt to give a birdseye view of the subjects covered by various parts of the collection.<br>Show all 350 projects, use the fuzzy search box or click on a tag to explore and only show relevant projects. Multiple tags can be entered to further narrow the search results…<br>Read more…<br>The current primary development focus is on data-driven, functional tooling for TypeScript and browser-based technologies. However, thi.ng overall aims at different programming approaches and languages, incl. Clojure, ClojureScript, C11, Houdini VEX. All projects share a common philosophy with an emphasis on composition, interop, simplicity, data transformation, introspection & visualization and use of powerful data structures. Most projects favor a mixture of functional and declarative designs over classic object-oriented approaches, though we fully embrace the target languages, strive to be undogmatic and embrace hybrid solutions where they make sense. Parts of the collection also focus on domain-specific languages and offer core infrastructure to help with their implementation.

The tag cloud search requires JavaScript to be enabled in your...

projects design open source computational part

Related Articles