newsletters:2025-12
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| newsletters:2025-12 [2026/01/17 10:12] – [Statement reuse bug fix (fixes editor freeze)] osnr | newsletters:2025-12 [2026/01/17 23:48] (current) – [folk2 launch party] osnr | ||
|---|---|---|---|
| Line 39: | Line 39: | ||
| * [[https:// | * [[https:// | ||
| * Scheduler now scales number of Folk worker threads up to roughly the CPU count, to make better use of bigger Folk PC we have (the scheduler probably still needs a lot of work to be robust against a lot of different workloads) | * Scheduler now scales number of Folk worker threads up to roughly the CPU count, to make better use of bigger Folk PC we have (the scheduler probably still needs a lot of work to be robust against a lot of different workloads) | ||
| - | * Daniel [[https:// | + | * Daniel [[https:// |
| + | * {{.: | ||
| * Improved " | * Improved " | ||
| === Vulkan memory allocation === | === Vulkan memory allocation === | ||
| - | As we tested the system before the party, we noticed huge amounts of blinking when you had a bunch of camera slices / animation | + | As we tested the system before the party, we noticed huge amounts of blinking when you had a bunch of camera slices / animation / sprites out. |
| - | (which is a form of workload that Folk really struggles with; we can cope with a long-running task, and we can do lots of short tasks, but lots of medium-length tasks is really hard for us. The blinking is a symptom of underlying slowdown / bottleneck in the evaluator, where we're missing deadlines to respond to things because we're spending too much compute time elsewhere) | + | {{newsletters: |
| - | Well, memory allocation shouldn' | + | And the blinking got worse and worse over time. I profiled the system and saw that we would be spending milliseconds up to tens of milliseconds on each GPU memory allocation of a new texture for the camera slices / animations / sprites. See how long the gpu/ |
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | (this is a form of workload that Folk really struggles with; we can cope with a long-running task, and we can do lots of short tasks, but lots of medium-length tasks is really hard for us. The blinking is a symptom of underlying slowdown / bottleneck in the evaluator, where we're missing deadlines to respond to things because we're spending too much compute time elsewhere) | ||
| + | |||
| + | Well, memory allocation shouldn' | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | The best part was that I [[https:// | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | {{newsletters: | ||
| - | I switched to use the Vulkan Memory Allocator library that everyone recommends, and this immediately fixed everything, and now performance of camera slices and animations is great and doesn' | ||
| ==== /setup page ==== | ==== /setup page ==== | ||
| Line 62: | Line 78: | ||
| === JPEG frames === | === JPEG frames === | ||
| - | TODO: Decompress | + | We started on using JPEG frames in the system for /setup / live preview last month. This month, we added decompress |
| [[https:// | [[https:// | ||
| Line 123: | Line 139: | ||
| Whenever I got the editor freeze bug, I'd see that that Hold! block was executing, and most of the statements from the block were in the database, but one was missing & would never show up as a result to any queries (so we'd be lacking a '' | Whenever I got the editor freeze bug, I'd see that that Hold! block was executing, and most of the statements from the block were in the database, but one was missing & would never show up as a result to any queries (so we'd be lacking a '' | ||
| + | |||
| + | I walked the database trie by hand and confirmed that the '' | ||
| + | |||
| + | {{.: | ||
| This made me feel that there was some really bad race in the evaluator (this behavior violates what I would think of as core Folk invariants), | This made me feel that there was some really bad race in the evaluator (this behavior violates what I would think of as core Folk invariants), | ||
| Line 158: | Line 178: | ||
| ==== Editor refactor ==== | ==== Editor refactor ==== | ||
| - | Mason did a big [[https:// | + | Mason did a big [[https:// |
| - | This mostly came out of us trying to fix a bug where the scroll viewport was weirdly small on editor reboot (due to some race in the old way we were doing state). | + | This mostly came out of a bug where the scroll viewport was weirdly small on editor reboot (due to some race in the old way we were doing state). The refactor fixes this bug. |
| + | {{newsletters: | ||
| + | |||
| + | Some other funny line number situations we saw (and fixed) while doing the refactor: | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | Now the editor feels pretty solid and comfortable across zooms, restarts, etc. | ||
| ==== Folk for DnD ==== | ==== Folk for DnD ==== | ||
| Line 173: | Line 200: | ||
| {{.: | {{.: | ||
| + | The branch works okay in small tests, but slows down the system a lot when I run the whole thing. | ||
| === Richer captures === | === Richer captures === | ||
| Line 191: | Line 219: | ||
| I want to clean it up and do some more stuff (maybe texture the quads with the camera slices of each quad). It'd be cool for this to be a livestream UI with these ' | I want to clean it up and do some more stuff (maybe texture the quads with the camera slices of each quad). It'd be cool for this to be a livestream UI with these ' | ||
| + | |||
| + | ==== New gadget1 ==== | ||
| + | |||
| + | Omar: I printed a new (pink!) gadget1 to bring to China. This one uses top/bottom threading for the front panel so we don't need space-eating wells to screw the front panel into. | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | It also now has a bottom hole for the trigger button, so we can do trigger button stuff on the gadget1 as well. And it supports dual Pi cameras to mount and to stick through front panel. | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | New (left) and old (right): | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | I've just been doing each one by hand, but it feels like we now have a number of implicit variants: | ||
| + | |||
| + | * Battery (gadget2) vs. no-battery (gadget1) | ||
| + | * Orange Pi (gadget2) vs. Raspberry Pi (gadget1) | ||
| + | * retail AnyBeam (gadget2) vs. Ultimems devkit (gadget1) | ||
| + | * (the retail AnyBeam requires USB-C video in, so needs the Orange Pi) | ||
| + | * (it is somewhat more stable to mount the devkit because it has multiple threaded holes underneath, though) | ||
| + | * ELP stereo camera (gadget2) vs. dual Raspberry Pi cameras (gadget1) | ||
| + | |||
| + | It would be nice to be able to mix and match these attributes. | ||
| + | |||
| + | I haven' | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | See how it changes output when I press the trigger button: | ||
| + | |||
| + | {{.: | ||
| + | |||
| ==== Experimental tcl interpreter update ==== | ==== Experimental tcl interpreter update ==== | ||
| Line 205: | Line 267: | ||
| ==== Outreach ==== | ==== Outreach ==== | ||
| - | Our friend | + | Our friends |
| - | {{newsletters: | + | {{newsletters: |
| === folk2 launch party === | === folk2 launch party === | ||
| - | We had a [[https:// | + | We had a [[https:// |
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | Was a good way to bring people in who hadn't seen Folk in a while, announce nonprofit and folk2 updates, and force ourselves to make progress on public-facing niceties in the Folk system. (We probably made a couple months' | ||
| Omar made some programs to do the merge live on stage: | Omar made some programs to do the merge live on stage: | ||
| Line 226: | Line 294: | ||
| {{newsletters: | {{newsletters: | ||
| - | Omar and Andrés gave a short talk about their work on folk2 and the hopes they have for the future of the project. Afterward Daniel talked about the non-profit and funding this work: | + | Omar and Andrés gave a short talk about their work on folk2 and the hopes they have for the future of the project. |
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | Afterward Daniel talked about the non-profit and funding this work: | ||
| - | {{newsletters: | + | {{newsletters: |
| === Folk gadgets at SVA === | === Folk gadgets at SVA === | ||
newsletters/2025-12.1768644736.txt.gz · Last modified: by osnr
