• Stars
    star
    3,330
  • Rank 13,456 (Top 0.3 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

β›± Broadly scoped ecosystem & mono-repository of 198 TypeScript projects (and ~175 examples) for general purpose, functional, data driven development

thi.ng/umbrella

GitHub Workflow Status Code Climate Become a patron Mastodon Follow

About

"A collection of functional programming libraries that can be composed together. Unlike a framework, thi.ng is a suite of instruments and you (the user) must be the composer of. Geared towards versatility, not any specific type of music." β€” @loganpowell via Twitter

Please visit thi.ng for additional information & topic based search of packages relevant to your use cases...

This project is NOT a framework! This mono-repository is home to currently 180 individual TypeScript/ES6 projects (and ~120 example projects), a wide and jointly developed collection of packages, tools and general purpose building blocks for (non-exhaustive list of topics, see package overview below):

  • Functional programming (ES6 iterators/generators, composition, memoization, transducers, multi-methods)
  • Reactive programming, stream / transducer based dataflow graphs / pipelines / DOM
  • Data structures & data transformations for wide range of use cases (maps, sets, heaps, queues, graphs etc.)
  • WebAssembly bridge APIs & data structure bindings code generators for multiple target languages
  • PEG-style functional parser combinators w/ (optional) custom grammar definition language
  • 2D geometry generation, shape primitives, math, manipulation, intersections, conversions & visualizations
  • Canvas abstractions, pixel buffers & SVG serialization/conversion
  • Vector, matrix (dense & sparse), ECS implementations with optional support for strided memory layouts
  • Semi-declarative WebGL 1/2 abstraction layer
  • DSL for shader functions defined in TypeScript and cross-compilation to GLSL, JS, VEX etc.
  • Value-based equivalence (vs. native object identity)
  • DSP building blocks: oscillators, noise generators, filters, 1D FFT/IFFT, muxers, rate converters
  • Immutable data handling, state containers, transacted state updates, Undo-Redo history
  • Data driven UI component toolkits (DOM-based, canvas-based, immediate-mode, multiple approaches...)
  • Multi-format, multi-channel pixel buffers (int & float based), conversions, dithering, Porter-Duff alpha-blending operators
  • Color space/format conversions, matrix based color manipulation, gradient generators, color palettes
  • Date-time abstraction, relative dates, iterators, formatters, math
  • WebWorker workflow abstractions
  • Forth-style pointfree DSL for functional composition and DSL development/extension
  • S-expression parser & runtime (interpreter) infrastructure for custom DSL creation
  • SIMD batch-processing of vector data
  • Pen-plotter (AxiDraw) toolchain & geometry conversions
  • Various interpolations, math helpers, automatic differentiation (Dual numbers)
  • etc.

Once more, this project is NOT a framework, provides no turn-key, one-size-fits-all approach and instead encourages a mix & match philosophy for various key aspects of application design (in & outside the browser). Customization points are provided wherever possible and usually only expect certain interfaces/type signatures rather than concrete implementations.

All packages:

  • are versioned independently
  • released via thi.ng/monopub
  • distributed as ESM modules (ES2020 syntax) with export maps, TypeScript typings & change logs
  • highly modular with largely only a single function / class (only closely related functions) per file to help w/ selective imports and tree shaking
  • provide re-exports of all their publics for full library imports
  • have either none or only @thi.ng internal runtime dependencies (w/ very few exceptions!)
  • declare public interfaces, enums & types in an api.ts file
  • have auto-generated online documentation at docs.thi.ng
  • licensed under Apache Software License 2.0

Getting started

The sheer number and varied nature & purpose of these packages makes it impossible to provide traditional "Getting started" tutorials. To compensate, this repo provides ~120 example projects, detailed readmes (at the very least for all the larger and/or more important packages) and hundreds of small usage examples/snippets in various docstrings.

If unsure about something, please reach out!

Project templates

You might find one of the following template repos an useful starting point:

  • tpl-umbrella-basic: Bare-bones template repo for browser-based projects
  • tpl-umbrella-fxhash: Project template repo for generative art projects on the fx(hash) platform
  • tpl-umbrella-zig: Minimal browser project template for hybrid TypeScript & Zig (WebAssembly) apps

Examples & Showcase

There's a steadily growing number (~120) of standalone examples of different complexities (often combining functionality from several packages) in the examples directory.

Example screenshots (small selection)

awesome.thi.ng

Due to other priorities still very much in its infancy & planning stage, but please help to document your own usage of these packages by contributing project information to the awesome.thi.ng repo, which will be used to build a showcase site... Thank you!

Generative art projects

Several generative art projects by Karsten Schmidt on fx(hash) have been created exclusively with libraries from this collection.

De/Frag series
Quasiflock C-SCAPE ASCII-SCAPE
Bubblemania Danza (unreleased) S-TRACE (unreleased)

Blog posts

Videos

Community, contributing, getting help

Join the (still new) discussions here on Github, get in touch via Mastodon or use the issue tracker. If you'd like to contribute in other ways, please first read this document.

In general, we welcome contributions of all kinds (docs, examples, bug fixes, feature requests, financial contributions etc.). You can find a fairly detailed overview for contributors here: CONTRIBUTING.md.

Note: The default branch for this repo is develop and all PRs should be based on this branch. This too means, the README files on this branch might refer to yet-unreleased features or packages. Please use the main branch for viewing the most recently released version(s)!.

Wiki

So far the wiki has only been updated sporadically, but please be sure to check it out for project-wide glossary, information, cookbooks, useful snippets etc.

Projects

Latest updates

As of: 2023-06-29

Status Package Version Changelog
@thi.ng/leb128 version changelog
@thi.ng/timestep version changelog
@thi.ng/wasm-api version changelog
@thi.ng/wasm-api-bindgen version changelog
@thi.ng/wasm-api-dom version changelog

Fundamentals

Project Version Changelog Description
@thi.ng/args version changelog Declarative & functional CLI arg parsing & coercions
@thi.ng/api version changelog Common types, decorators, mixins
@thi.ng/bench version changelog Basic benchmarking helpers
@thi.ng/checks version changelog Type & value checks
@thi.ng/compare version changelog Comparators
@thi.ng/compose version changelog Functional composition helpers
@thi.ng/date version changelog Date/time iterators, formatters, rounding
@thi.ng/defmulti version changelog Dynamic multiple dispatch
@thi.ng/distance version changelog n-D distance metrics & K-nearest neighborhoods
@thi.ng/equiv version changelog Deep value equivalence checking
@thi.ng/errors version changelog Custom error types
@thi.ng/expose version changelog Conditional global variable exposition
@thi.ng/hex version changelog Hex value formatters for U4-64 words
@thi.ng/logger version changelog Basis infrastructure for arbitrary logging
@thi.ng/memoize version changelog Function memoization w/ customizable caching
@thi.ng/oquery version changelog Pattern based query engine for JS objects
@thi.ng/parse version changelog Parser combinators & AST generator/transformer
@thi.ng/paths version changelog Immutable nested object accessors
@thi.ng/strings version changelog Higher-order string formatting utils
@thi.ng/system version changelog Minimal life cycle container for stateful app components
@thi.ng/testament version changelog Minimal test runner
@thi.ng/transclude version changelog Template engine for text document generation
@thi.ng/units version changelog Extensible SI unit conversions

Maths

Project Version Changelog Description
@thi.ng/dual-algebra version changelog Dual number algebra / automatic differentiation
@thi.ng/dsp version changelog DSP utils, composable signal gens/processors
@thi.ng/fuzzy version changelog Fuzzy logic primitives & rule inference engine
@thi.ng/intervals version changelog Open/closed intervals, queries, set ops
@thi.ng/math version changelog Assorted common math functions & utilities
@thi.ng/matrices version changelog Matrix operations
@thi.ng/sparse version changelog Sparse matrix & vector impls
@thi.ng/timestep version changelog Fixed timestep simulation updates with state interpolation
@thi.ng/vectors version changelog Fixed & arbitrary-length vector ops

Randomness

Project Version Changelog Description
@thi.ng/colored-noise version changelog 1D colored noise generators
@thi.ng/ksuid version changelog K-sortable unique identifiers, binary & base-N encoded
@thi.ng/lowdisc version changelog n-D Low discrepancy sequence generators
@thi.ng/random version changelog Seedable PRNG implementations, distributions & utilities
@thi.ng/random-fxhash version changelog PRNG impl & utilities for fxhash projects

File / file format / hardware support

Project Version Changelog Description
@thi.ng/axidraw version changelog Minimal, declarative AxiDraw plotter controller
@thi.ng/bencode version changelog Bencode binary format encoding
@thi.ng/csv version changelog Customizable CSV parser/object mapper
@thi.ng/dot version changelog Graphviz DOM & export
@thi.ng/dsp-io-wav version changelog WAV file format exporter
@thi.ng/file-io version changelog Assorted file I/O utils for NodeJS
@thi.ng/geom-io-obj version changelog Wavefront OBJ model parser
@thi.ng/hiccup-css version changelog CSS from nested JS data structures
@thi.ng/hiccup-html version changelog Type-checked HTML5 element wrappers for hiccup
@thi.ng/hiccup-markdown version changelog Hiccup-to-Markdown serialization
@thi.ng/hiccup-svg version changelog hiccup based SVG vocab
@thi.ng/iges version changelog IGES format geometry serialization
@thi.ng/markdown-table version changelog Markdown table generator / formatter
@thi.ng/mime version changelog File extension to MIME type mappings
@thi.ng/pixel-io-geotiff version changelog GeoTIFF reader support for thi.ng/pixel
@thi.ng/pixel-io-netpbm version changelog 1/8/16/24bit NetPBM image format reader/writer
@thi.ng/prefixes version changelog Linked Data, RDF & xmlns prefixes/URLs
@thi.ng/sax version changelog SAX-like XML parser / transducer
@thi.ng/tangle version changelog Literate programming utilities

Iterator, stream & sequence processing

Project Version Changelog Description
@thi.ng/csp version changelog Channel based async ops
@thi.ng/fsm version changelog FSM / parser primitives
@thi.ng/grid-iterators version changelog 2D grid iterator strategies
@thi.ng/iterators version changelog ES6 generators / iterators
@thi.ng/seq version changelog Lisp/Clojure-style sequence abstraction
@thi.ng/transducers version changelog Composable data transformations
@thi.ng/transducers-binary version changelog Binary data related transducers
@thi.ng/transducers-fsm version changelog Finite state transducer
@thi.ng/transducers-hdom version changelog Transducer based hdom UI updates
@thi.ng/transducers-patch version changelog Patch-based, array & object editing
@thi.ng/transducers-stats version changelog Technical / statistical analysis

Reactive programming

Project Version Changelog Description
@thi.ng/rstream version changelog Push-based, reactive event stream primitves
@thi.ng/rstream-csp version changelog Adapter bridge CSP -> rstream
@thi.ng/rstream-dot version changelog Graphviz visualization of rstream topologies
@thi.ng/rstream-gestures version changelog Mouse & touch event stream abstraction
@thi.ng/rstream-graph version changelog Declarative dataflow graph construction
@thi.ng/rstream-log version changelog Hierarchical structured data logging
@thi.ng/rstream-log-file version changelog Log-file output handler
@thi.ng/rstream-query version changelog Triple store & query engine

Algorithms & data structures

Project Version Changelog Description
@thi.ng/adjacency version changelog Adjacency matrices & graph algorithms
@thi.ng/arrays version changelog Array utilities
@thi.ng/associative version changelog Alt Set & Map implementations
@thi.ng/atom version changelog Immutable value wrappers, views, history
@thi.ng/bitfield version changelog 1D/2D bit field implementations
@thi.ng/cache version changelog In-memory caches / strategies
@thi.ng/cellular version changelog Highly configurable 1D Cellular automata
@thi.ng/dcons version changelog Doubly-linked list
@thi.ng/diff version changelog Array & object diffing
@thi.ng/dgraph version changelog Dependency graph
@thi.ng/ecs version changelog Entity-Component System
@thi.ng/egf version changelog Extensible Graph Format
@thi.ng/gp version changelog Genetic programming helpers / AST gen
@thi.ng/heaps version changelog Binary & d-ary heap impls
@thi.ng/idgen version changelog Versioned ID generation / free-list
@thi.ng/k-means version changelog K-means clustering of n-D data
@thi.ng/ramp version changelog Parametric, interpolated lookup tables
@thi.ng/quad-edge version changelog Quad-edge, dual-graph data structure
@thi.ng/resolve-map version changelog DAG computations & value resolution
@thi.ng/vclock version changelog Vector clock functions / comparators
@thi.ng/zipper version changelog Immutable tree editing / navigation

Frontend / UI

Project Version Changelog Description
@thi.ng/adapt-dpi version changelog HDPI canvas adaptation / styling util
@thi.ng/dl-asset version changelog Asset/canvas/file download helpers
@thi.ng/emoji version changelog Bi-directional emoji lookup tables (names/chars)
@thi.ng/hdiff version changelog String diffing w/ hiccup output (includes CLI)
@thi.ng/hdom version changelog Hiccup based VDOM & diffing
@thi.ng/hdom-canvas version changelog hdom adapter for hiccup-canvas
@thi.ng/hdom-components version changelog hdom based UI components
@thi.ng/hdom-mock version changelog hdom mock implementation (testing / prototyping)
@thi.ng/hiccup version changelog S-expression based HTML/XML serialization
@thi.ng/hiccup-canvas version changelog hiccup interpreter for canvas api
@thi.ng/hiccup-carbon-icons version changelog IBM Carbon icons in hiccup format
@thi.ng/imgui version changelog Immediate mode GUI
@thi.ng/interceptors version changelog Composable event handlers & processor
@thi.ng/rdom version changelog Reactive, diff-less, async UI components
@thi.ng/rdom-canvas version changelog rdom component wrapper for thi.ng/hiccup-canvas
@thi.ng/rdom-components version changelog Unstyled, customizable component collection
@thi.ng/router version changelog Customizable browser & non-browser router
@thi.ng/text-canvas version changelog Text-mode canvas, drawing, tables, charts
@thi.ng/text-format version changelog Color text formatting w/ ANSI & HTML presets

Geometry, image & visualization

Project Version Changelog Description
@thi.ng/color version changelog Color conversions, gradients
@thi.ng/color-palettes version changelog Collection of image-based color palettes
@thi.ng/dgraph-dot version changelog Dependency graph -> Graphviz
@thi.ng/distance-transform version changelog Image based distance field generation
@thi.ng/fuzzy-viz version changelog Visualization, instrumentation for @thi.ng/fuzzy
@thi.ng/geom version changelog 2D only geometry types & ops
@thi.ng/geom-accel version changelog Spatial indexing data structures
@thi.ng/geom-api version changelog Shared types & interfaces
@thi.ng/geom-axidraw version changelog Shape conversions for AxiDraw pen plotter
@thi.ng/geom-arc version changelog 2D elliptic arc utils
@thi.ng/geom-clip-line version changelog 2D line clipping
@thi.ng/geom-clip-poly version changelog 2D convex polygon clipping
@thi.ng/geom-closest-point version changelog Closest point helpers
@thi.ng/geom-fuzz version changelog Fuzzy 2D shape drawing / filling
@thi.ng/geom-hull version changelog 2D convex hull (Graham scan)
@thi.ng/geom-isec version changelog Point & shape intersection tests
@thi.ng/geom-isoline version changelog 2D contour line extraction
@thi.ng/geom-poly-utils version changelog 2D polygon helpers
@thi.ng/geom-resample version changelog nD polyline / curve resampling
@thi.ng/geom-sdf version changelog 2D SDF creation, conversions, operators, utilities
@thi.ng/geom-splines version changelog nD cubic / quadratic spline ops
@thi.ng/geom-subdiv-curve version changelog nD iterative subdivision curves
@thi.ng/geom-tessellate version changelog nD convex polygon tessellators
@thi.ng/geom-trace-bitmap version changelog bitmap image to vector conversion
@thi.ng/geom-voronoi version changelog 2D iterative delaunay/voronoi
@thi.ng/lsys version changelog Extensible L-System architecture
@thi.ng/pixel version changelog Multi-format pixel buffers
@thi.ng/pixel-dither version changelog Image dithering w/ various algorithm presets
@thi.ng/poisson version changelog nD Poisson disk sampling
@thi.ng/porter-duff version changelog Alpha blending / compositing ops
@thi.ng/rasterize version changelog Shape drawing, filling & rasterization
@thi.ng/scenegraph version changelog Extensible 2D/3D scenegraph
@thi.ng/simd version changelog WebAssembly SIMD vector batch processing
@thi.ng/viz version changelog Declarative & functional data visualization toolkit

WebGL / GPGPU

Project Version Changelog Description
@thi.ng/shader-ast version changelog AST DSL for x-platform shader code
@thi.ng/shader-ast-glsl version changelog GLSL code generator
@thi.ng/shader-ast-js version changelog JS code generator
@thi.ng/shader-ast-optimize version changelog AST code optimization strategies
@thi.ng/shader-ast-stdlib version changelog 100+ useful AST shader functions
@thi.ng/webgl version changelog WebGL 1/2 / GPGPU facilities
@thi.ng/webgl-msdf version changelog MSDF font rendering
@thi.ng/webgl-shadertoy version changelog Shadertoy-like WebGL setup

Low-level, binary, memory management, interop

Project Version Changelog Description
@thi.ng/base-n version changelog Arbitrary base-n encoding/decoding with presets
@thi.ng/binary version changelog Assorted binary / bitwise ops, utilities
@thi.ng/bitstream version changelog Bitwise input / output streams
@thi.ng/dlogic version changelog Digital logic ops / constructs
@thi.ng/leb128 version changelog WASM based LEB128 varint encoder / decoder
@thi.ng/malloc version changelog Raw & typed array memory pool & allocator
@thi.ng/morton version changelog Z-order-curve / Morton coding
@thi.ng/range-coder version changelog Binary data Range encoder / decoder
@thi.ng/rle-pack version changelog Run-length encoding data compression
@thi.ng/soa version changelog Memory mapped data structures & serialization
@thi.ng/unionstruct version changelog Wrapper for C-like structs / unions
@thi.ng/vector-pools version changelog Data structures for memory mapped vectors
@thi.ng/wasm-api version changelog Modular, extensible JS/WebAssembly bridge API
@thi.ng/wasm-api-bindgen version changelog Polyglot bindings code generator for C/Zig/TS
@thi.ng/wasm-api-canvas version changelog WASM-side Canvas2D API bindings
@thi.ng/wasm-api-dom version changelog WASM-side DOM manipulation
@thi.ng/wasm-api-schedule version changelog WASM-side delayed code execution/scheduling

DSLs

Project Version Changelog Description
@thi.ng/pointfree version changelog Stack-based DSL & functional composition
@thi.ng/pointfree-lang version changelog Forth-like syntax layer for @thi.ng/pointfree
@thi.ng/sexpr version changelog S-Expression parser & runtime infrastructure

Building

git clone https://github.com/thi-ng/umbrella.git
cd umbrella

yarn install
yarn build

Once the entire mono-repo has been fully built at least once before, individual packages can then be (re)built like so:

yarn workspace @thi.ng/transducers run build

# or

(cd packages/transducers && yarn build)

Building example projects

Please see the example build instructions in the wiki for further details.

Testing

(Most, but not all packages have tests)

Due to various build/config issues/complexities, we're now using our own minimal test runner @thi.ng/testament

yarn test

# or individually
yarn workspace @thi.ng/rstream run test

Documentation

Autogenerated documentation (using TypeDoc) will be saved under /packages/*/doc/ and is also available at docs.thi.ng.

yarn doc

Furthermore, an experimental tsdoc-based documentation repo provides an alternative markdown output including cross-references between all packages, but currently isn't frequently updated (only every few months):

https://github.com/thi-ng/umbrella-docs-temp

Acknowledgements

Maintaining a large monorepo like this requires a lot of infrastructure and I'm grateful for the tooling provided by the following projects to simplify those tasks:

License

Β© 2015 - 2023 Karsten Schmidt // Apache Software License 2.0

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Karsten Schmidt
Karsten Schmidt

πŸ’» πŸ“– 🚧 πŸ’΅
Alberto
Alberto

πŸ’» πŸ’‘ πŸ› πŸ€” πŸ’΅
Arthur Carabott
Arthur Carabott

πŸ’» πŸ€” πŸ’‘ πŸ“ πŸ’΅
AndrΓ© Wachter
AndrΓ© Wachter

πŸ’» πŸ€” πŸ›
Gavin Cannizzaro
Gavin Cannizzaro

πŸ’» πŸ› πŸ€”
Logan Powell
Logan Powell

πŸ“– πŸ› πŸ€” πŸ’΅
Marcin Ignac
Marcin Ignac

πŸ›
arcticnoah
arcticnoah

πŸ’»
allforabit
allforabit

πŸ› πŸ’» πŸ€” πŸ’΅
Yifan Wu
Yifan Wu

πŸ› πŸ“–
stwind
stwind

πŸ’» πŸ›
evilive
evilive

πŸ’»
Bnaya Peretz
Bnaya Peretz

πŸ’» πŸ› πŸ€”
oljeger
oljeger

πŸ›
Nik Shevchenko
Nik Shevchenko

πŸ› πŸ’»
Matei Adriel
Matei Adriel

πŸ’» πŸ› πŸ€”
Pierre Grimaud
Pierre Grimaud

πŸ“–
Matt Huebert
Matt Huebert

πŸ’΅
Raphael Saunier
Raphael Saunier

πŸ’΅
Eric Ihli
Eric Ihli

πŸ’΅
David Pham
David Pham

πŸ’΅
TBD
TBD

πŸ› πŸ€”
Pedro Henriques dos Santos Teixeira
Pedro Henriques dos Santos Teixeira

πŸ’΅
Jamie Owen
Jamie Owen

πŸ’» πŸ›
Robert Kesteson
Robert Kesteson

πŸ› πŸ’»
Chancy Kennedy
Chancy Kennedy

πŸ’΅
Jarred Sumner
Jarred Sumner

πŸ›
Jamie Slome
Jamie Slome

πŸ› πŸ›‘οΈ
d3v53c
d3v53c

πŸ› πŸ›‘οΈ
Jannis Pohlmann
Jannis Pohlmann

πŸ›
Shakthi Prasad G S
Shakthi Prasad G S

πŸ› πŸ’»
Robin Gower
Robin Gower

πŸ›
Michael Latzoni
Michael Latzoni

πŸ›
Z Yin
Z Yin

πŸ›
Damien Seguin
Damien Seguin

πŸ› πŸ’»
Rui Gil
Rui Gil

πŸ›
Ja|nz
Ja|nz

πŸ’» πŸš‡ 🚧
Tyler Freeman
Tyler Freeman

πŸ› πŸ’»
blackhuman
blackhuman

πŸ›
David Negstad
David Negstad

πŸ’»
Muhammad Ridho
Muhammad Ridho

πŸ› πŸ’»
MarcusWagberg
MarcusWagberg

πŸ’»
Masashi Yoshikawa
Masashi Yoshikawa

πŸ›
Guido Schmidt
Guido Schmidt

πŸ› πŸ’΅
tsukamotohideki
tsukamotohideki

πŸ’΅
Dave Meehan
Dave Meehan

πŸ’» πŸ€”
AurΓ©lien Bottazini
AurΓ©lien Bottazini

πŸ›
Alex
Alex

πŸ› πŸ’΅
Ross Cairns
Ross Cairns

πŸ’΅
Ruslan Prakapchuk
Ruslan Prakapchuk

πŸ’΅
Jarrod Davis
Jarrod Davis

πŸ’΅

This project follows the all-contributors specification. Contributions of any kind welcome!

More Repositories

1

geom

2D/3D geometry toolkit for Clojure/Clojurescript
Clojure
953
star
2

tinyalloc

malloc / free replacement for unmanaged, linear memory situations (e.g. WASM, embedded devices...)
C
768
star
3

org-spec

Org-mode skeleton for technical specifications & HTML theme
CSS
301
star
4

morphogen

3D form evolution through tree based transformations
Shell
165
star
5

fabric

Signal/Collect inspired compute graph infrastructure for Clojure & Clojurescript
Shell
156
star
6

color

CLJ/CLJS library for color conversion & manipulation
Shell
148
star
7

raymarchcl

Experimental OpenCL voxel rendering/raymarching via Clojure REPL (from 2013)
C
135
star
8

synstack

Modular soft synth & Forth based VM for audio DSL experiments aimed at embedded devices
C
115
star
9

houdini

Houdini HDAs & sketches (VEX, OpenCL, Python)
114
star
10

c-thing

Geometry related data structures (C11)
C
107
star
11

trio

Datatype agnostic triple store & query engine API
Shell
79
star
12

babel

A Leiningen project template for literate Clojure projects w/ org-mode
Clojure
75
star
13

luxor

Clojure based LXS scene graph compiler, generator & mesh exporter for Luxrender
Shell
75
star
14

ws-ldn-12

ARM / STM32F7 DIY synth workshop
C
73
star
15

shadergraph

WebGL/GLSL shader library & dependency framework for ClojureScript
Shell
60
star
16

cgg

Online cosine gradient generator for use w/ thi.ng/color
Clojure
59
star
17

tpl-umbrella-fxhash

Project template repo for generative art projects on the fx(hash) platform
TypeScript
52
star
18

charlie

TypeScript based Forth-like VM w/ online REPL and extensive kernel (incl. WebGL/WebAudio support)
TypeScript
46
star
19

ws-ldn-4

Interactive DIY Synth / ARM baremetal workshop (London, 23-24 January 2016)
C
39
star
20

vexed-generation

Polymorphic helper functions & geometry ops for Houdini VEX / OpenCL
C
38
star
21

ct-gui

Small C11 GUI library (currently only for STM32)
C
38
star
22

ws-ldn-8

High Performance ClojureScript - WebGL, GPU computing, asm.js & Web workers
Clojure
33
star
23

math

Common math functions, macros & utilities for Clojure/Clojurescript
Shell
32
star
24

zig-thing

Small collection of data types/structures, utilities & open-learning with Zig
Zig
30
star
25

ws-ldn-10

Generative design workshop (Clojure/ClojureScript)
Clojure
30
star
26

ndarray

Clojure/Clojurescript port of ndarray core JS library w/ extended features
Shell
27
star
27

validate

Spec based validation & correction for nested data structures, wildcard support, no macros
Clojure
27
star
28

ws-ldn-2

Clojure/Clojurescript workshop (11-13 Nov 2015, London)
Clojure
26
star
29

simplecl

Easy to use OpenCL wrapper for Clojure
Clojure
25
star
30

blog

Current blog posts and consolidated historical articles from various other blog platforms used previously
TypeScript
23
star
31

tweeny

Clojure
23
star
32

ws-ldn-1

Clojure/Clojurescript workshop (2-4 Nov 2015, London)
Clojure
23
star
33

ws-ldn-3

DIY Synth / ARM baremetal workshop (London, 5-6 December 2015)
C
22
star
34

monopub

Lightweight & fast monorepo publish/release/changelog manager to automate releases using nothing more than Conventional Commits.
TypeScript
20
star
35

dstruct

Data structures & utilities for CLJ/CLJS
Shell
20
star
36

talks

Slides & source code of various talks given
JavaScript
18
star
37

font

Generated, modular typeface based on thi.ng wordmark
TypeScript
18
star
38

tpl-umbrella-zig

Minimal thi.ng/umbrella browser project template for hybrid TypeScript & Zig apps, using thi.ng/wasm-api for bridging both worlds and Vite as dev tool/server & bundler...
Zig
17
star
39

demos

A collection of small demos using various thi.ng libraries
Clojure
16
star
40

create-hdom-app

New project generator for @thi.ng/hdom TypeScript apps
TypeScript
16
star
41

cljs-log

Logging macros for Clojurescript
Clojure
15
star
42

punchcard

Customizable Git commit punchcard visualizations
Clojure
15
star
43

ws-ldn-7

DIY Synth & GUI workshop with STM32F7
C
13
star
44

crypto

Small Clojure lib to provide basic GPG keypair generation, encryption & decryption facilities
Clojure
13
star
45

structgen

Clojure library for parsing and seamless working with native C structs/structured byte buffers
Clojure
12
star
46

img2array

CLI util to convert images in various formats to C arrays in various bit depths
C
12
star
47

ws-beo-1

ARM/STM32 DIY synth workshop @ Resonate 2016
C
12
star
48

ws-ldn-11

High Performance ClojureScript - WebGL, WebRTC, Web workers & asm.js
Clojure
10
star
49

typedarrays

Clojurescript wrapper & convenience functions for JavaScript typed arrays
Shell
10
star
50

awesome.thi.ng

User showcase of thi.ng projects in the wild
9
star
51

thingybot

Modular, command driven twitter bot
Clojure
9
star
52

asm.thi.ng

Static site generator for http://asm.thi.ng
Clojure
9
star
53

ct-head

Common utility headers & macros for c.thi.ng projects
C
7
star
54

domus

Clojurescript DOM creation & helpers
Shell
7
star
55

macromath

Macro based inline expanded math expressions for Clojure/Clojurescript
Shell
6
star
56

strf

Extensible string formatters & number parsers for Clojure/Clojurescript
Shell
5
star
57

common

Utility belt of datastructures and functions shared by other thi.ng libraries
Shell
5
star
58

ws-bra-1

Digital Fabrication workshop at Sensorium, Bratislava 2016
Clojure
5
star
59

fourier

Audio analysis (FFT etc.), MP3 playback & time/frequency domain visualization for Clojure
Clojure
5
star
60

xerror

CLJ/CLJS error throwing functions
Clojure
5
star
61

perforate-x

Benchmarking helpers for Clojure & Clojurescript
Clojure
4
star
62

ws-ldn-6

Workshop repo: Building Clojure / ClojureScript desktop apps with OpenGL, OpenCL & Electron
Clojure
4
star
63

edit-any

Triplestore based, semantic wiki engine w/ faceted navigation, build with thi.ng/trio
Clojure
4
star
64

ws-ldn-9

Fast Track to Clojure / ClojureScript (Beginner) workshop
Clojure
4
star
65

tpl-umbrella-basic

Bare-bones template repo for thi.ng/umbrella browser-based projects (TypeScript, Vite, Tachyons)
HTML
4
star
66

ws-mz-1

Clojure
3
star
67

indicators

ES6 Iterators of technical indicators for statistical / financial analysis
TypeScript
3
star
68

egf-language-support

VSCode language support for Extensible Graph Format (https://thi.ng/egf)
3
star
69

jogl-foo

Tiny (temporary) test project for using JOGL w/ thi.ng/geom
Clojure
3
star
70

ldk-couchdb

CouchDB storage adapter for thi.ng/trio (formerly LDK, Linked Data Kit)
Clojure
2
star
71

ct-fat

Dynamically typed proglang experiment based on fat pointers
C
2
star
72

ldk-core

Precursor of thi.ng/trio - Lightweight Linked Data tools for Clojure & Clojurescript
Clojure
2
star
73

ldk-redis

Redis storage adapter for thi.ng/trio (formerly LDK, Linked Data Kit)
Clojure
2
star
74

site

Clojure
2
star
75

snippets

yasnippet collection for thi.ng libraries
1
star
76

branding

thi.ng identity assets & generators
1
star
77

imago

media repository server
Clojure
1
star
78

babel-plugin-transform-remove-logger

Babel plugin to remove logging calls for selected log levels
JavaScript
1
star