User Tools

Site Tools


newsletters:2026-03

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
newsletters:2026-03 [2026/04/22 22:31] – [What we'll be up to in April] osnrnewsletters:2026-03 [2026/04/23 01:39] (current) osnr
Line 3: Line 3:
 {{htmlmetatags>metatag-og:title=(Folk Computer March 2026 newsletter) {{htmlmetatags>metatag-og:title=(Folk Computer March 2026 newsletter)
 metatag-media-og:image=(newsletters:pasted:20260311-191224.jpeg) metatag-media-og:image=(newsletters:pasted:20260311-191224.jpeg)
-metatag-og:description=(TODO: Description)+metatag-og:description=(New studio move-in and mounting; SAM2 image view; editing built-in programs; GIFs; block stats)
 }} }}
  
-Our next Folk open house will be on Monday, April 27, in our **new studio** (**not** Hex House) in Williamsburg, Brooklyn. RSVP here:+Our next Folk open house will be on **next Monday, April 27**, in our **new studio** (**not** Hex House) in Williamsburg, Brooklyn. RSVP here:
  
 [[{}https://luma.com/toq7zpc7|RSVP for the Folk open house on April 27]] [[{}https://luma.com/toq7zpc7|RSVP for the Folk open house on April 27]]
  
-We're a nonprofit doing unique open-source research on physical computing and programming -- please consider sponsoring us:+We're a nonprofit doing unique open-source research on physical computing and programming -- we'd appreciate it if you sponsored us on GitHub:
  
 [[{}https://github.com/sponsors/FolkComputer|**Sponsor Folk on GitHub Sponsors**]] [[{}https://github.com/sponsors/FolkComputer|**Sponsor Folk on GitHub Sponsors**]]
Line 30: Line 30:
  
 {{newsletters:img_2414.jpeg?0x250px}}{{newsletters:img_2391.jpeg?0x250px}}{{newsletters:img_2406.jpeg?0x250px}}{{newsletters:img_2411.jpeg?0x250px}}{{newsletters:img_2407.jpeg?0x250px}}{{newsletters:img_2431.jpeg?0x250px}}{{newsletters:img_2442.jpeg?0x250px}}{{newsletters:img_2441.jpeg?0x250px}}{{newsletters:img_2420.jpeg?0x250px}} {{newsletters:img_2414.jpeg?0x250px}}{{newsletters:img_2391.jpeg?0x250px}}{{newsletters:img_2406.jpeg?0x250px}}{{newsletters:img_2411.jpeg?0x250px}}{{newsletters:img_2407.jpeg?0x250px}}{{newsletters:img_2431.jpeg?0x250px}}{{newsletters:img_2442.jpeg?0x250px}}{{newsletters:img_2441.jpeg?0x250px}}{{newsletters:img_2420.jpeg?0x250px}}
 +
 +Some old programs we came across -- funny what kinds of things we were doing back then and how the system has changed:
 +
 +{{newsletters:img_2926.jpeg?0x250px}} {{newsletters:img_2923.jpeg?0x250px}}
  
 Moving & the new studio at first: Moving & the new studio at first:
Line 40: Line 44:
 {{newsletters:img_5236.jpeg?0x250px}} {{newsletters:img_5236.jpeg?0x250px}}
 === Mounting research === === Mounting research ===
 +
 +Original temporary mount was using a heavy-duty magic arm on a storage shelf in the new studio:
 +
 +{{newsletters:img_2938.jpeg?0x300px}} {{newsletters:img_2946.jpeg?0x300px}}
  
 We want to set up more and bigger Folk systems in the new studio, and we don't have a low ceiling with obvious mount points, so we've been looking into C-stands as a general mounting solution. We want to set up more and bigger Folk systems in the new studio, and we don't have a low ceiling with obvious mount points, so we've been looking into C-stands as a general mounting solution.
Line 116: Line 124:
 which makes sense, because I think SAM2 always segments a 1024x1024 image, no matter what bigger or smaller image you feed it. so just need to reduce these marshaling costs, use shared memory, etc. which makes sense, because I think SAM2 always segments a 1024x1024 image, no matter what bigger or smaller image you feed it. so just need to reduce these marshaling costs, use shared memory, etc.
  
 +
 +==== gadget3 tinkering ====
 +
 +Omar: I spent a couple hours looking at what it would take to make a new gadget with custom mostly-all-in-one PCB, just one battery, Pi compute module, Ultimems board on top, active cooling. I think we could get it way lighter and smaller.
  
 ==== General system improvements ==== ==== General system improvements ====
  
 +  * [[https://github.com/FolkComputer/folk/pull/252|Added support for editing built-in programs directly from the on-table Folk editor.]] Changes are saved as .folk.edited patches, and the override logic is now in boot.folk so it can apply to all programs, not just printed ones
 +    * Very exciting in that it's on the path to doing more and more of our day-to-day work in the system
 +    * Editing sam2.folk:
 +      * {{newsletters:570807012-e1dc1005-64ab-41ed-a21b-1147d3ec45b6.jpeg?300px}}
   * [[https://danielpipk.in/|Daniel Pipkin]] added [[https://github.com/FolkComputer/folk/pull/249|support for GIFs to ''display image'']], including animated GIFs   * [[https://danielpipk.in/|Daniel Pipkin]] added [[https://github.com/FolkComputer/folk/pull/249|support for GIFs to ''display image'']], including animated GIFs
     * Omar [[https://github.com/FolkComputer/folk/pull/251|cleaned up the code slightly]], including modularizing the loader code for each image type     * Omar [[https://github.com/FolkComputer/folk/pull/251|cleaned up the code slightly]], including modularizing the loader code for each image type
Line 127: Line 143:
   * [[https://github.com/FolkComputer/folk/compare/f9f0215f...c925fc05|Checked in]] the [[newsletters/2026-02#sound-wheel|3D quads web viewer from a few months ago]] with small fixes (default view down camera barrel, flickering fixes)   * [[https://github.com/FolkComputer/folk/compare/f9f0215f...c925fc05|Checked in]] the [[newsletters/2026-02#sound-wheel|3D quads web viewer from a few months ago]] with small fixes (default view down camera barrel, flickering fixes)
   * Moved all pure 'userland' library dependencies (libwslay, apriltag) [[https://github.com/FolkComputer/folk/commit/296b89de44d889f9e247705a0dc45d5b489bc96f|out of the Makefile]]; [[https://github.com/FolkComputer/folk/commit/fb0aae289497c500657f4a898e717b103cabd32d|discourage]] future dependencies from getting added to it   * Moved all pure 'userland' library dependencies (libwslay, apriltag) [[https://github.com/FolkComputer/folk/commit/296b89de44d889f9e247705a0dc45d5b489bc96f|out of the Makefile]]; [[https://github.com/FolkComputer/folk/commit/fb0aae289497c500657f4a898e717b103cabd32d|discourage]] future dependencies from getting added to it
 +  * Vendored stb_ds, started using it and rwlocks for various bookkeeping lists and  tables that used to be fixed-size where we were crashing or had lots of contention (holds, output redirection)
 +  * Started using -O2 and -march=native for C modules (I want to speed up subimage warp, might need to hand-optimize)
 +  * Text rendering optimizations: [[https://github.com/FolkComputer/folk/commit/db34ab34844e8aa25757282af8d2698002f43bcb|make the font object an opaque pointer]] since we only operate on it from C anyway, so we don't have to reparse it for every text render. Makes text render go from 1ms -> 300us.
 +    * [[https://github.com/FolkComputer/folk/commit/780c34ab4dc39fd864ea43fef1f54cd805b0ac8c|Build the shaped text object directly as a string]], so we don't need to serialize for every value, also saving a few hundred microseconds I think
 +  * [[https://github.com/FolkComputer/folk/commit/f4560366f1c2371e369b1b5cef466842981944a5|Fixed blink bug with /camera where it would distractingly blink out if frame retrieval failed; wait for success before changing frame]]
 +  * Fixed GPU crashes and warpQuad out-of-bounds when holding page in weird orientation (allocating way too big an image)
  
 === Default calibration === === Default calibration ===
Line 156: Line 178:
  
 {{.:pasted:20260422-220525.png?450px}} {{.:pasted:20260422-220525.png?450px}}
 +
 +Realized that it was a bad move to do JPEG-space crop and decompression for each slice -- it's almost as slow as a full decompress -- should go back to doing the full decompress for every camera frame and then putting the raw color frame in a statement. But this adds a lot of latency, because it takes a few ms (!) to do a full decompress, so now we decompress both gray and RGB in parallel.
 +
 +{{newsletters:screenshot-2026-03-23-at-4.39.56-pm.png?300px}} {{.:pasted:20260422-230930.png?300px}}
 +
 +I feel like we can do more here -- reduce rest-of-system latencies, use hardware-accelerated JPEG decoding, whatever. There shouldn't be a 2ms difference between gray decode and RGB decode, and a 2ms difference shouldn't wreck system throughput.
 +
 +
 === Multi-projector support === === Multi-projector support ===
  
-With the new studio, we want to make a bigger table that has 2 projectors connected to one PC. Folk doesn't support that right now -- the whole gpu/draw driver is parameterized by a single display's parameters -- so have been slowly refactoring and untangling it.+With the new studio, we want to make a bigger table that has 2 projectors connected to one PC. Folk doesn't support that right now -- the whole gpu/draw driver has been parameterized by a single display's parameters -- so have been slowly [[https://github.com/FolkComputer/folk/commit/ccaa8ee3f791541667b35e653a716f22165a40cd|refactoring and untangling it]], and [[https://github.com/FolkComputer/folk/commit/75ca62d4f9e37506fec6c1c38ac457f0423aeba1|updating the setup.folk UI to let you check multiple displays]].
 ==== Outreach ==== ==== Outreach ====
  
newsletters/2026-03.1776897086.txt.gz · Last modified: by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki