newsletters:2026-09
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| newsletters:2026-09 [2026/10/05 18:18] – osnr | newsletters:2026-09 [2026/10/07 21:10] (current) – [September 2026 newsletter (WIP)] osnr | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== September 2026 newsletter | + | ====== September 2026 newsletter ====== |
| - | + | ||
| - | FIXME htmlmetatags | + | |
| {{htmlmetatags> | {{htmlmetatags> | ||
| - | metatag-media-og: | + | metatag-media-og: |
| - | metatag-og: | + | metatag-og: |
| - | Our next Folk open house will be in the evening on **[[https:// | + | Our next Folk open house will be in the evening on **[[https:// |
| Line 24: | Line 22: | ||
| * Should finally fix the random space changer failures which would fill up the log! (was happening when space changer initialized to null changer and then filled later, but original changer function was not actually replaced) | * Should finally fix the random space changer failures which would fill up the log! (was happening when space changer initialized to null changer and then filled later, but original changer function was not actually replaced) | ||
| * / | * / | ||
| + | * [[https:// | ||
| + | * Python FFI: [[https:// | ||
| === Atomically === | === Atomically === | ||
| - | - [[https:// | + | [[https:// |
| + | |||
| + | I saw a lot of these issues with RC visitors who were making a bouncing ball (clock time atomically) whose color was based on color wheel (quad atomically). Blinking: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Fixes: | ||
| + | |||
| + | * [[https:// | ||
| * Should fix " | * Should fix " | ||
| - | | + | |
| - | - One-way hasConverged (latch convergence) | + | |
| - | | + | * Collect retains previous version when atomic |
| + | * One-way hasConverged (latch convergence) | ||
| + | | ||
| + | * You can also use the -keep option on the When to set a custom timeout, for things where you expect re-convergence to take a long time or just never want expiry (it's a ' | ||
| + | * [[https:// | ||
| + | Also comes with a [[https:// | ||
| + | {{: | ||
| === Graphics speedup === | === Graphics speedup === | ||
| Line 44: | Line 58: | ||
| Next, I want to do more editing and terminal I/O in the system. I think we can also push draw call batching further and maybe then bring back the validation layer. | Next, I want to do more editing and terminal I/O in the system. I think we can also push draw call batching further and maybe then bring back the validation layer. | ||
| + | |||
| + | ==== RFID localization ==== | ||
| + | |||
| + | Current state of RFID localization is that it can talk to the tag at up to around 1.1 meters (but drops off afterward) and can also localize it reasonably well to within a couple cm. We went up from like 30% successful tag detection rate at 1.1m to around 90%: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | At home -- it talks to the tag fine on table but not once I move it further outward to couch: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | In September: | ||
| + | |||
| + | * **Fixed channel estimation bug**: we were mistakenly treating all bits as flipping between reflective state and non-reflective halfway through, but only ' | ||
| + | * Subtract baseline carrier wave to improve detection range | ||
| + | * Faster RFID protocol implementation (integer arithmetic) so we are better at making the ACK deadline | ||
| + | * Retain the channel at each hop so we can still localize even if we didn't get a valid hop last round | ||
| + | * Persist stuff to disk, run headless for testing loop | ||
| + | |||
| + | Hop alignment between RFID reader (in-band) and out-of-band localization helper radio looks pretty good: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Uncalibrated localization (we pick that first peak to probably be the line-of-sight path and tell us the estimated distance to the tag from that): | ||
| + | |||
| + | {{: | ||
| + | |||
| + | It's still a sort of coarse localization -- we need to use more fine phase data and also start triangulating from more than one OOB radio, I think. Would also be nice to increase speed. Will also do a Folk projector demo like what we used to have to make the detection accuracy more visceral. | ||
| ==== Object tracking / DrawTalking ==== | ==== Object tracking / DrawTalking ==== | ||
| Line 49: | Line 91: | ||
| === DINOv2 (embedding model) === | === DINOv2 (embedding model) === | ||
| - | Embedding-based tracking has a number of advantages. | + | Omar: This month, I've been trying object tracking using [[https:// |
| + | |||
| + | It lets you do // | ||
| + | |||
| + | Embeddings are fast -- you can compute an embedding of a pose or viewport in like 10ms -- and are fast on almost any hardware, even my low-end home Intel N95 GPU (which can run DINOv2 in 100 or 200ms but takes 2 seconds to run SAM2). | ||
| + | |||
| + | I started with pose registration that takes the embedding of the pose, and a ' | ||
| - | It lets you do re-identification. | + | {{: |
| - | It's fast -- you can compute an embedding of a pose or viewport | + | (Inelegant: pose registration step still requires SAM2, because SAM2 is how we cut the object out of the page/ |
| - | It lets you get these really nice intepretable heatmaps of what the most ' | + | Then I started doing localization, |
| - | Here, the top heatmap | + | Here, the top heatmap |
| {{: | {{: | ||
| Line 67: | Line 115: | ||
| == DINOv2 with normalized cross-correlation == | == DINOv2 with normalized cross-correlation == | ||
| - | Here's DINOv2 with NCC but no rotation tracking, which is remarkably fast and accurate for a radially symmetric object like this cup: | + | You can find the hottest point in the heatmap to get a coarse location of the cup or army toy or whatever, but to get a fine-grained location, you need a refinement step that uses something else. We could use SAM2 again here, but that seems slow and may suffer from distortion again. Better idea (inspired by my old ScreenMatcher project): use [[https:// |
| + | |||
| + | Here's DINOv2 with NCC, which is remarkably fast and accurate for a radially symmetric object like this cup: | ||
| {{: | {{: | ||
| Line 74: | Line 124: | ||
| {{: | {{: | ||
| + | |||
| + | Only problem is that this doesn' | ||
| == Rotation tracking == | == Rotation tracking == | ||
| - | Harder to deal with asymmetrical objects. Need to record | + | Solution: 1. record multiple physical poses with the object rotated differently, |
| + | |||
| + | [[https:// | ||
| + | |||
| + | It tracks the orientation of this army toy fairly well (except it sometimes flips by 180 degrees, which makes sense for this toy): | ||
| + | |||
| + | {{: | ||
| + | |||
| + | == Next steps == | ||
| + | |||
| + | The center (fine-grained localization) is still a bit unstable and sometimes makes mistakes or jumps a few centimeters, | ||
| + | |||
| + | I did a lot of speedup work: do FFT convolution, | ||
| + | |||
| + | === DrawTalking integration === | ||
| + | |||
| + | We've started talking about the graphics pipeline that would be needed to draw many-point curves for sketches from DrawTalking. Some discussion about how to translate from DT procedural mindset to Folk reactive/ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | The graphics optimizations for the editor should help a lot here. Instead of reusing the existing line popeline, we probably want a custom pipeline with push constants for point A, point B, and transform, and then only the transform usually varies from frame to frame. | ||
| + | |||
| + | I think this integration will be a good test of Folk performance for drawing complex objects and passing complex data through the DB (which is definitely something we want to support). Like a DT object with thousands or tens of thousands or hundreds of thousands of points. | ||
| ==== folk-cnc ==== | ==== folk-cnc ==== | ||
| - | Omar: As part of the RTBW project, Brian and I have been mounting and bringing up the CNC system. Mounted steel strut to ceiling, hung 2 cameras and a projector (cantilevered on wood block). | + | Omar: As part of the RTBW project, Brian, John Williams, |
| + | {{: | ||
| + | Mounted steel strut to ceiling, hung 2 cameras and a projector (cantilevered on wood block). | ||
| {{: | {{: | ||
| - | We also remounted folk-convivial | + | It took a while to figure out how to mount the projector, because it projects in a triangle upward from its bottom plate, and our strut wasn't really in the right spot to mount it widescreen. |
| - | {{: | + | {{: |
| + | |||
| + | but felt uncomfortable mounting them. Eventually just went with turning it 90 degrees and doing the cantilever for now. As you can see, it's still not perfectly aligned with the left edge of the cut area on the bed, so we'll probably tweak it soon: | ||
| + | |||
| + | {{: | ||
| Weirdly, both of our Intel N95-based mini PCs seemed to have fried SSDs when I tried them. I ran into this issue on my home system after about a year, too. Replaced the SSD and put a 3D-printed spacer in to make the new SSD the right length: | Weirdly, both of our Intel N95-based mini PCs seemed to have fried SSDs when I tried them. I ran into this issue on my home system after about a year, too. Replaced the SSD and put a 3D-printed spacer in to make the new SSD the right length: | ||
| Line 98: | Line 178: | ||
| {{: | {{: | ||
| + | |||
| + | === folk-convivial === | ||
| + | |||
| + | We also remounted folk-convivial from the ceiling, getting rid of the C-stand that was always at risk of tipping over (and took up floor space, and made the table impossible to move without toppling the stand): | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Good alignment of projector and camera now: | ||
| + | |||
| + | {{: | ||
| === Telephoto camera === | === Telephoto camera === | ||
| Line 105: | Line 195: | ||
| I can configure the lens to the right field of view, but can't mechanically get it to the right place to focus it while keeping it all attached. Need to buy a ring adapter to push the C-mount lens further out, I think? Haven' | I can configure the lens to the right field of view, but can't mechanically get it to the right place to focus it while keeping it all attached. Need to buy a ring adapter to push the C-mount lens further out, I think? Haven' | ||
| - | {{: | + | {{: |
| ==== [Expect] and rewindability ==== | ==== [Expect] and rewindability ==== | ||
| Line 180: | Line 269: | ||
| ==== Open Sound Control API ==== | ==== Open Sound Control API ==== | ||
| - | Paul: I am in the process of building out a Folk music toolkit, and one of the core components needed for this system is the ability to send OSC messages from my Folk machine to arbitrary OSC servers to control synthesizers. I managed to implement simple OSC send functionality which allows Folk users to send OSC messages using the native Folk `Notify:` syntax. A Folk environment first registers the address of the OSC server using `Claim the NetAddr is < | + | Paul: I am in the process of building out a Folk music toolkit, and one of the core components needed for this system is the ability to send OSC messages from my Folk machine to arbitrary OSC servers to control synthesizers. I managed to implement simple OSC send functionality which allows Folk users to send OSC messages using the native Folk '' |
| Next I will add support for OSC bundles, which will allow us to write proper tidalcycles-esque pattern languages native in Folk! | Next I will add support for OSC bundles, which will allow us to write proper tidalcycles-esque pattern languages native in Folk! | ||
| Line 192: | Line 281: | ||
| === Interface Studies podcast === | === Interface Studies podcast === | ||
| - | FIXME: | + | Omar and Daniel showcased Folk on the first episode of " |
| + | |||
| + | {{youtube> | ||
| + | |||
| + | Andrés: I've watched [[https:// | ||
| + | |||
| + | {{newsletters: | ||
| === SVA system === | === SVA system === | ||
| Line 200: | Line 295: | ||
| === Recurse Center and SVA visitors === | === Recurse Center and SVA visitors === | ||
| - | Tracey Le has been bringing in smaller groups from the current Recurse Center batches who want to do some programming in the 87R systems (and maybe bring knowledge and practices back to the RC system). | + | Tracey Le has been bringing in smaller groups from the current Recurse Center batches who want to do some programming in our systems |
| + | {{: | ||
| + | == Friday, September 4 == | ||
| - | {{: | + | {{: |
| + | |||
| + | == Friday, September 18 == | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Tracey has been showing the raw contour + color-wheel stuff to a lot of visitors: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | == Friday, September 25 == | ||
| + | |||
| + | {{: | ||
| + | |||
| + | We messed with the object-tracking label program to label with real-world centimeter positions: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | and to make big labels: | ||
| + | |||
| + | {{: | ||
| Line 212: | Line 329: | ||
| Had a pretty big open house (we've been having big open houses for the last few months). Tracey brought a bunch of people from Recurse Center; Alan Laidlaw stopped in for the first time in a while; Paul came up from Philadelphia. | Had a pretty big open house (we've been having big open houses for the last few months). Tracey brought a bunch of people from Recurse Center; Alan Laidlaw stopped in for the first time in a while; Paul came up from Philadelphia. | ||
| - | {{: | + | {{: |
| Nice to have: New fast editor + lack of multi-editor bug when pointed at multiple things. | Nice to have: New fast editor + lack of multi-editor bug when pointed at multiple things. | ||
| Line 219: | Line 336: | ||
| {{: | {{: | ||
| + | |||
| + | === Utah Meetup === | ||
| + | We had our first Utah meetup in Lehi, UT. We chatted about the reactive database and introduced the system to our host Michael. | ||
| + | |||
| + | We plan to do this monthly. If you are interested, reach out on discord or email < | ||
| + | |||
| + | {{: | ||
| + | |||
| ===== What we'll be up to in October ===== | ===== What we'll be up to in October ===== | ||
| * Our next [[https:// | * Our next [[https:// | ||
| - | * Omar: Ship RFID tracker | + | * Omar: Ship RFID tracker; do projection demo of distance to confirm visually that it works |
| * Omar: Build automatic folk-cnc driver and preview application | * Omar: Build automatic folk-cnc driver and preview application | ||
| - | * Omar: Calibrate RTBW CNC system | + | * Omar: Calibrate RTBW CNC system |
| * Omar: More work to make editor usable on table | * Omar: More work to make editor usable on table | ||
| * Omar: Filter DINOv2+NCC+rotation tracker to be more stable; integrate with DrawTalking strokes | * Omar: Filter DINOv2+NCC+rotation tracker to be more stable; integrate with DrawTalking strokes | ||
| - | * Andrés: | + | * Andrés: |
| ===== Links we've enjoyed ===== | ===== Links we've enjoyed ===== | ||
| ==== Andrés ==== | ==== Andrés ==== | ||
| - | * | + | * FIXME |
| ==== Omar ==== | ==== Omar ==== | ||
| * http:// | * http:// | ||
newsletters/2026-09.1791224294.txt.gz · Last modified: by osnr
