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:58] – [General system improvements] 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)
 }} }}
  
Line 10: Line 10:
 [[{}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 125: Line 133:
   * [[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   * [[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     * 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 137: Line 147:
   * 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.   * 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/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 167: Line 179:
 {{.: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. I feel like we can do more here.+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 ===
  
newsletters/2026-03.1776898682.txt.gz · Last modified: by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki