This is an old revision of the document!
Table of Contents
June 2025 newsletter
TODO:
- [x] Make the Luma for July open house
- [x] Make the Substack
- [ ] Schedule the Substack send
- [x] Cull and note Discord links to summarize
- [x] Fill in “What we've been up to”
- [x] Fill in “Demos and applications” (GitHub)
If you want to stop by the studio, our next Folk open house is in the evening on Thursday, July 31, in East Williamsburg, Brooklyn.
Workshop interest form
If you’d be interested in attending some experimental in-person workshops we’re planning, please fill out this form. We’ll post more updates on workshops on the main folk.computer page and our Instagram page as these workshops come together.
What we've been up to
- Andrés:
- Kept fighting with ordering / clearing-frame bugs in the video processor:
- Reviewed and merged Mason Jones' PR that adds support for importing GitHub gists into Folk allowing us to do things like make a gist with Folk code and run it on the table
- I've been practicing making short social media videos of various new Folk features and programs people have been working on:
- Omar:
- Made a PR to improve the calibration step's autorefresh and expose crop width/height. More from Omar himself:
- “This should greatly reduce how much overhead the calibrate autorefresh imposes, especially on low-end systems. It also should feel more life. It now only refreshes once the previous frame has fully loaded, so not every 100ms (and also fixes problems where you don't see any updates because you're just constantly churning the img)”
- Reviewed and merged Mason Jones' PR to fix an edge case with Tcl/JS interop
- Reviewed and merged a contribution from Justin Liang that clarifies to create the `folk` user before adding permissions
Demos and applications
- Running Folk code from a GitHub gist (thanks to Mason Jones for the initial contribution):
- Andrés wrote a git branch preview program – here, showing (in green text) that the current running branch is main:
- On the back of it, they attached the code in this little pop-up:
Gadget improvements
Omar: two big bursts of work on the gadget this month.
One burst was while I was at Gradient Retreat in Canada. I brought my gadget and quickly found that it was hard to calibrate and physically unstable (the projector kept swiveling around inside it).
I made calibration fixes on folk2 and folk1 (discussed elsewhere in this newsletter), especially fixing the text bug.
A painful thing with the gadget is that its Ultimems AnyBeam laser beam scanning projector makes it hard to capture a whole projector image in a single camera frame (because you only get a subregion at a time if you're exposing the camera for less than like 15ms).
So I've been cranking the exposure time way up (150ms+), which causes it to loop around in a weird way, and then calibrating it in the dark. Weirdly, this kind of works OK.
I also found that the Wi-Fi dongle is sketchy (I tuned a bunch of power saver settings to try to help; it also just can't do ad-hoc Wi-Fi) and probably overloading the current capacity of the USB bus. So I did a new revision that uses the official Orange Pi 5 Wi-Fi board instead of a USB dongle.
Another burst was in preparation for our Recurse Center talk (this coming week). We found a bug with camera slices where they flicker (trying to fix now).
folk2
Omar: Work has sort of stalled here on trying to get calibration to work better.
(There are also still some significant blinking-out bugs when you have multiple programs out.)
I made some more nicety improvements / bug fixes to calibration (some of which I also backported to folk1):
- Made the slider range for exposure time more reasonable by default, not up to 10,000ms or whatever (if you need weird exposure time like that, just type it in)
- Text scales based on tag size so it doesn't collide with it on gadget
- This was the bug that was fixed (see how the label text is too big and collides with tags so you can't calibrate):
- Made background color of calibrate settable from white (I ended up not using this) so you can deal with higher exposure times without washing out
- Autorefresh waits for prev frame to fully load (also backported to folk1)
- Camera now claims crop size so the calibration loads properly
I also fixed the dashed-line outline for the gadget to use the new projection stuff.
Outreach
Open house
We had our open house on Monday, June 30th. It was attended by a small but enthusiastic crowd!
- Group photo:
- A picture of Verun Joshi's's photo of our GitHub repo so later reference:
- Meghna Rao turning 1. a photo of an ice cream into a little stop motion art using our animation binder program and 2. using her phone's flashlight to create a spontaneous animation:
Other visitors and interactions
- Paul and Ehmry visited Andrés at the Folk studio. Ehmry is a contributor to Synit — an experimental reactive operating system — and we spent an afternoon going through snippets of Synit's Tcl code live on the table which was a really engaging way to learn about how they're using Tcl for reactive OS operations:
- They had the great idea of making a stop motion animation using multiple Folk stickers
- Andrés had their (receipt printer themed) birthday party at Hex House and gave Sami Smith and Evan Kahn a tour of some shiny new Folk programs in the studio:
What we'll be up to in June
- Our next Folk open house is in the evening on Thursday, July 31, in East Williamsburg, Brooklyn.
- Omar: continue trying to make calibration work well in folk2
- Omar: try to fix blinking bugs in folk2
- Andrés: TBD