shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

289
active users

#bottomupdesign

0 posts0 participants0 posts today
Karsten Schmidt<p>Another workshop done and glad I got a chance to introduce colleagues to the I Ching hexagrams as an example for <a href="https://mastodon.thi.ng/tags/BottomUpDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BottomUpDesign</span></a> and as system for constructing/composing higher level concepts/meanings from just a small set of fundamental archetypes (in the I Ching there're only 8 fundamental trigrams)... It's been hugely influential and a guiding principle for my own work &amp; design philosophy (incl. for most of my <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> projects) and I keep finding ever new uses for applying this approach, here to devise a composable classification system, eventually allowing us to define more complex concepts... In world defined by <a href="https://mastodon.thi.ng/tags/TopDownThinking" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TopDownThinking</span></a>, going the opposite way and showing people the benefits/flexibility is sometimes/oftentimes _very_ hard, but to me unquestionably more powerful...</p><p>Ps. Also reminded again of the whole Seed technology and essence/function (aka "ti-yong") contrast/discussion/subplots in Stephenson's Diamond Age... Yong is the outer manifestation of something. Ti is the underlying essence...</p><p><a href="https://en.wikipedia.org/wiki/Hexagram_(I_Ching)" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">en.wikipedia.org/wiki/Hexagram</span><span class="invisible">_(I_Ching)</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/Composition" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Composition</span></a> <a href="https://mastodon.thi.ng/tags/Language" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Language</span></a> <a href="https://mastodon.thi.ng/tags/IChing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IChing</span></a> <a href="https://mastodon.thi.ng/tags/Hexagram" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Hexagram</span></a></p>
Karsten Schmidt<p>A week ago was the 1st anniversary of this solo instance &amp; more generally of my fulltime move to Mastodon. A good time for a more detailed intro, partially intended as CV thread (pinned to my profile) which I will add to over time (also to compensate the ongoing lack of a proper website)... Always open to consulting offers, commissions and/or suitable remote positions...</p><p>Hi, I'm Karsten 👋 — indy software engineer, researcher, <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> author of hundreds of projects (since ~1999), computational/generative artist/designer, landscape photographer, lecturer, outdoor enthusiast, on the ND spectrum. Main interest in transdisplinary research, tool making, exploring techniques, projects &amp; roles amplifying the creative, educational, expressive and inspirational potential of (personal) computation, code as material, combining this with generative techniques of all forms (quite different to what is now called and implied by "generative AI").</p><p>Much of my own practice &amp; philosophy is about <a href="https://mastodon.thi.ng/tags/BottomUpDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BottomUpDesign</span></a>, interconnectedness, simplicity and composability as key enablers of emergent effects (also in terms of workflow &amp; tool/system design). Been adopting a round-robin approach to cross-pollinate my work &amp; learning, spending periods going deep into various fields to build up and combine experience in (A-Z order): API design, audio/DSP, baremetal (mainly STM32), computer vision/image processing, compiler/DSL/VM impl, databases/linked data/query engines, data structures impl, dataviz, fabrication (3DP, CNC, knit, lasercut), file formats &amp; protocols (as connective tissue), "fullstack" webdev (front/back/AWS), generative &amp; evolutionary algorithms/art/design/aesthetics/music, geometry/graphics, parsers, renderers, simulation (agents/CFD/particles/physics), shaders, typography, UI/UX/IxD...</p><p>Since 2018 my main endeavor has been <a href="https://thi.ng/umbrella" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/umbrella</span><span class="invisible"></span></a>, a "jurassic" (as it's been called) monorepo of ~185 code libraries, addressing many of the above topics (plus ~150 examples to illustrate usage). More generally, for the past decade my OSS work has been focused on <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a>, <a href="https://mastodon.thi.ng/tags/C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>C</span></a>, <a href="https://mastodon.thi.ng/tags/Zig" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Zig</span></a>, <a href="https://mastodon.thi.ng/tags/WebAssembly" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebAssembly</span></a>, <a href="https://mastodon.thi.ng/tags/Clojure" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Clojure</span></a>, <a href="https://mastodon.thi.ng/tags/ClojureScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ClojureScript</span></a>, <a href="https://mastodon.thi.ng/tags/GLSL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GLSL</span></a>, <a href="https://mastodon.thi.ng/tags/OpenCL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenCL</span></a>, <a href="https://mastodon.thi.ng/tags/Forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Forth</span></a>, <a href="https://mastodon.thi.ng/tags/Houdini" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Houdini</span></a>/#VEX. Earlier on, mainly Java (~15 years, since 1996).</p><p>Formative years in the deep end of the <a href="https://mastodon.thi.ng/tags/Atari" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Atari</span></a> 8bit demoscene (Chip Special Software) &amp; game dev (eg. The Brundles, 1993), B&amp;W dark room lab (since age 10), music production/studio (from 1993-2003), studied media informatics, moved to London initially as web dev, game dev (Shockwave 3D, ActionScript), interaction designer, information architect. Branched out, more varied clients/roles/community for my growing collection of computational design tools, which I've been continously expanding/updating for the past 20+ years, and which have been the backbone of 99% of my work since ~2006 (and which helped countless artists/designers/students/studios/startups). Creator of thi.ng (since 2011), toxiclibs (2006-2013), both large-scale, multi-faceted library collections. Early contributor to Processing (2003-2005, pieces of core graphics API).</p><p>Worked on dozens of interactive installations/exhibitions, public spaces &amp; mediafacades (own projects and many collabs, several award winning), large-scale print on-demand projects (&gt;250k unique outputs), was instrumental in creating some of the first generative brand identity systems (incl. cloud infrastructure &amp; asset management pipelines), collaborated with architects, artists, agencies, hardware engineers, had my work shown at major galleries/museums worldwide, taught 60+ workshops at universities, institutions and companies (mainly in EMEA). Was algorithm design lead at Nike's research group for 5 years, working on novel internal design tools, workflows, methods of make, product design (footwear &amp; apparel) and team training. After 23 years in London, my family decided on a lifestyle change and so currently based in the beautiful Allgäu region in Southern Germany.</p>
Karsten Schmidt<p><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@nervous_jesse" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>nervous_jesse</span></a></span> I hear ya &amp; don't get me wrong. I do like &amp; find most of them intuitive too, esp. after a little warm up period... :) But I also still think there's something quite special about that rigorous simplicity of Forth and the concatenative way, which remains severely underexplored in the industry. Not just talking about syntax here, but this whole <a href="https://mastodon.thi.ng/tags/BottomUpDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BottomUpDesign</span></a> spiel I've been working on for all these years in various languages — to me it is expressed in its clearest form in a concatenative language. On the one hand these languages are encouraging to find/define/split/factor units of tiny pieces of functionality, but then make it also incredibly easy (and powerful and elegant) to synthesize and re-assemble those tiny building blocks into larger, maybe more dedicated/specialized operations... and some of this can be done in an almost "context free" way (as in not knowing anything about the data being processed). I don't know that in this consistent form nor to this extend from any other language family I've tried over the past 30 years, not even Lisps...</p><p>Btw. Re: OOP - you might remember/like this classic piece of writing: 😅<br><a href="https://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">steve-yegge.blogspot.com/2006/</span><span class="invisible">03/execution-in-kingdom-of-nouns.html</span></a></p>
Karsten Schmidt<p><a href="https://mastodon.thi.ng/tags/HowToThing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HowToThing</span></a> <a href="https://mastodon.thi.ng/tags/Epilogue" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Epilogue</span></a> <a href="https://mastodon.thi.ng/tags/LongRead" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LongRead</span></a>: After 66 days of addressing 30 wildly varied use cases and building ~20 new example projects of varying complexity to illustrate how <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> libraries can be used &amp; combined, I'm taking a break to concentrate on other important thi.ngs...</p><p>With this overall selection I tried shining a light on common architectural patterns, but also some underexposed, yet interesting niche topics. Since there were many different techniques involved, it's natural not everything resonated with everyone. That's fine! Though, my hope always is that readers take an interest in a wide range of topics, and so many of these new examples were purposefully multi-faceted and hopefully provided insights for at least some parts, plus (in)directly communicated a core essence of the larger project:</p><p>Only individual packages (or small clusters) are designed &amp; optimized for a set of particular use cases. At large, though, thi.ng explicitly does NOT offer any such guidance or even opinion. All I can offer are possibilities, nudges and cross-references, how these constructs &amp; techniques can be (and have been) useful and/or the theory underpinning them. For some topics, thi.ng libs provide multiple approaches to achieve certain goals. This again is by design (not lack of it!) and stems from hard-learned experience, showing that many (esp. larger) projects highly benefit from more nuanced (sometimes conflicting approaches) compared to popular defacto "catch-all" framework solutions. To avid users (incl. myself) this approach has become a somewhat unique offering and advantage, yet in itself seems to be the hardest and most confusing aspect of the entire project to communicate to newcomers.</p><p>So seeing this list of new projects together, to me really is a celebration (and confirmation/testament) of the overall <a href="https://mastodon.thi.ng/tags/BottomUpDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BottomUpDesign</span></a> <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> approach (which I've been building on since ~2006): From the wide spectrum/flexibility of use cases, the expressiveness, concision, the data-first approach, the undogmatic mix of complementary paradigms, the separation of concerns, no hidden magic state, only minimal build tooling requirements (a bundler is optional, but recommended for tree shaking, no more) — these are all aspects I think are key to building better (incl. more maintainable &amp; reason-able) software. IMO they are worth embracing &amp; exposing more people to and this is what I've partially attempted to do with this series of posts...</p><p>ICYMI here's a summary of the 10 most recent posts (full list in the <a href="https://thi.ng/umbrella" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/umbrella</span><span class="invisible"></span></a> readme). Many of those examples have more comments than code...</p><p>021: Iterative animated polygon subdivision &amp; heat map viz<br><a href="https://mastodon.thi.ng/@toxi/111221943333023306" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11122194</span><span class="invisible">3333023306</span></a></p><p>022: Quasi-random voronoi lattice generator<br><a href="https://mastodon.thi.ng/@toxi/111244412425832657" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11124441</span><span class="invisible">2425832657</span></a></p><p>023: Tag-based Jaccard similarity ranking using bitfields<br><a href="https://mastodon.thi.ng/@toxi/111256960928934577" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11125696</span><span class="invisible">0928934577</span></a></p><p>024: 2.5D hidden line visualization of DEM files<br><a href="https://mastodon.thi.ng/@toxi/111269505611983570" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11126950</span><span class="invisible">5611983570</span></a></p><p>025: Transforming &amp; plotting 10k data points using SIMD<br><a href="https://mastodon.thi.ng/@toxi/111283262419126958" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11128326</span><span class="invisible">2419126958</span></a></p><p>026: Shader meta-programming to generate 16 animated function plots<br><a href="https://mastodon.thi.ng/@toxi/111295842650216136" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11129584</span><span class="invisible">2650216136</span></a></p><p>027: Flocking sim w/ neighborhood queries to visualize proximity<br><a href="https://mastodon.thi.ng/@toxi/111308439597090930" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11130843</span><span class="invisible">9597090930</span></a></p><p>028: Randomized, space-filling, nested 2D grid layout generator<br><a href="https://mastodon.thi.ng/@toxi/111324566926701431" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11132456</span><span class="invisible">6926701431</span></a></p><p>029: Forth-like DSL &amp; livecoding playground for 2D geometry<br><a href="https://mastodon.thi.ng/@toxi/111335025037332972" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11133502</span><span class="invisible">5037332972</span></a></p><p>030: Procedural text generation via custom DSL &amp; parse grammar<br><a href="https://mastodon.thi.ng/@toxi/111347074558293056" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11134707</span><span class="invisible">4558293056</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/Tutorial" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Tutorial</span></a></p>
Karsten Schmidt<p><span class="h-card" translate="no"><a href="https://mastodon.online/@KarenStrickholm" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>KarenStrickholm</span></a></span> <span class="h-card" translate="no"><a href="https://genart.social/@guidoschmidt" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>guidoschmidt</span></a></span> Yes, those kinda projects are really cool, but it's also an example of what I earlier meant with "using only simple homogeneous jacquard structures". I do not mean to dismiss this kind of approach at all, but the design process for those kind of projects is pretty isolated from the actual making/production (i.e. it's just treating the knit as a "cool" output medium, a uniform pixel canvas, maybe with a mask for the different pieces). Personally, I think it's much more interesting &amp; rewarding to work on projects where the knit with all its [weird &amp; wonderful] opportunities is the main driver and is in direct relationship with all other design stages... It's kind of going backwards: Starting with specially designed/chosen stitches/structures (even yarns) and from there working towards a desired aesthetic. Starting with the method of make first, sets the conceptual framework &amp; constraints for everything else. Also pretty similar to <a href="https://mastodon.thi.ng/tags/GenerativeDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GenerativeDesign</span></a> and <a href="https://mastodon.thi.ng/tags/BottomUpDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BottomUpDesign</span></a>.</p><p>Btw. This all is much more related to and important for technical/performance textiles. E.g. here're some good examples by Stoll (who we've worked with):</p><p><a href="https://www.stoll.com/fileadmin/user_upload/pdfs/Brochures_english/STOLL_TT_Broschuere_web.pdf" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">stoll.com/fileadmin/user_uploa</span><span class="invisible">d/pdfs/Brochures_english/STOLL_TT_Broschuere_web.pdf</span></a></p>
Karsten Schmidt<p>The past few days I've been thinking a lot again about one of the thought/design models most influential on my own <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> practice: Frank Duffy's architectural pace layers (and Stewart Brand's subsequent extension to different contexts), their different timescales and interactions as basis for resilient system design:</p><p>1. Each layer exists &amp; operates independently, moves at different timescales (from seconds to millennia and beyond)<br>2. Each layer influences and only interacts with its direct neighbors</p><p>"Fast layers innovate, slow ones stabilize." — S.Brand</p><p>I always found that model super helpful for analyzing and deciding how to deal with individual projects and components in terms of focus/effort, and asking myself which layer this thing might/should be part of. Lately though, I keep on trying to figure out how to better utilize that model to orient my own future practice, also with respect to the loose theme of <a href="https://mastodon.thi.ng/tags/PermaComputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PermaComputing</span></a> and how to frame and better organize my own approaches to it, incl. how to reanimate or repurpose some of the related, discontinued, but not invalid research &amp; projects I've been doing along these lines over the past 15 years...</p><p>I understand and appreciate most of the focus on <a href="https://mastodon.thi.ng/tags/FrugalComputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FrugalComputing</span></a> &amp; <a href="https://mastodon.thi.ng/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RetroComputing</span></a>-derived simplicity as starting points and grounding concepts for attempting to build a more sustainable, personal, comprehensible and maintainable tech, but these too can quickly become overly dogmatic and maybe too constraining to ever become "truly" permanent (at least on the horizon of a few decades). I think the biggest hurdles to overcome are social rather than technological (e.g. a need for post-consumerist, post-spectacular behaviors), so I'm even more interested in Illich/Papert/Nelson/Felsenstein-inspired <a href="https://mastodon.thi.ng/tags/ConvivialComputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ConvivialComputing</span></a>, <a href="https://mastodon.thi.ng/tags/SocialComputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SocialComputing</span></a>, IO/comms/p2p, <a href="https://mastodon.thi.ng/tags/Accessibility" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Accessibility</span></a>, UI, protocol and other resiliency design aspects becoming a core part of that research and think the idea of pace layering can be a very powerful tool to take into consideration here too, at the very least for guiding (and questioning) how to approach and structure any perma-computing related research itself...</p><p>Given the current physical and political climate shifts, is it better to continue working "upwards" (aka <a href="https://mastodon.thi.ng/tags/BottomUpDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BottomUpDesign</span></a>), i.e. primarily focusing on first defining slow moving, low-level layers as new/alternative foundations (an example here would be the flurry of VM projects, incl. my own)? Or, is it more fruitful and does the situation instead call for a more urgent focus on fast-moving pace layer experiments and continuously accumulating learnings as fallout/sediment to allow the formation of increasingly more stable, but also more holistically informed, slower moving structural layers to build upon further?</p><p>It's a bit of chicken vs. egg! In my mind, right now the best approach seems to be a two-pronged one, alternating from both sides, each time informing upcoming work/experiments on the opposite end (fast/slow) and each time involving an as diverse as possible set of non-techbro minds from various fields... 🤔</p>