newsletters:2024-08
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
newsletters:2024-08 [2024/09/04 00:16] – [Handheld gadget] osnr | newsletters:2024-08 [2024/09/04 02:36] (current) – [3D calibration] osnr | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== August 2024 newsletter | + | ====== August 2024 newsletter ====== |
- | We’re looking to build up more small sponsors now that Folk is fully open-source | + | (If you enjoy following our progress and want us to continue, definitely consider [[https:// |
- | + | ||
- | If you enjoy following our progress and want us to continue, definitely consider [[https:// | + | |
- | + | ||
- | (our first goal is to cover our studio rent with sponsorships!) | + | |
- | + | ||
- | ---- | + | |
Some links, especially if you're new to Folk: | Some links, especially if you're new to Folk: | ||
Line 14: | Line 8: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | |||
- | ---- | ||
===== What we've been up to ===== | ===== What we've been up to ===== | ||
Line 66: | Line 58: | ||
==== System improvements ==== | ==== System improvements ==== | ||
+ | * Merged [[https:// | ||
+ | * Shows deprecated warning on programs that still use '' | ||
+ | * Also changed 3D calibration code accordingly | ||
+ | * Daniel and Andrés made some hotfixes because Ctrl-S and Ctrl-P were acting up on table keyboards | ||
+ | * Omar: [[https:// | ||
* [[https:// | * [[https:// | ||
* (Omar: I've seen other ESC/POS printers around, so this should come in handy in general.) | * (Omar: I've seen other ESC/POS printers around, so this should come in handy in general.) | ||
Line 100: | Line 97: | ||
==== Handheld gadget ==== | ==== Handheld gadget ==== | ||
- | Omar: An inventory of some of the gadget ideas I've been throwing around for the last few weeks as I've demoed it to people: | + | Omar: An inventory of some of the gadget ideas I've been throwing around for the last few weeks as I've demoed it to people |
* Trigger button to ' | * Trigger button to ' | ||
Line 109: | Line 106: | ||
* Segment parts of the world and projection-map them with colors or patterns automatically | * Segment parts of the world and projection-map them with colors or patterns automatically | ||
* Highlight text in a book or printout that the gadget is pointed to | * Highlight text in a book or printout that the gadget is pointed to | ||
+ | * Point gadget at your laptop screen, hold trigger, and drag objects (files, tabs, windows, photos, videos) out of your laptop and onto a Folk table as virtual objects (or into a receipt printer to make them physical objects) | ||
+ | * Gadget as flashlight that shows a ' | ||
+ | * want more brightness or higher pixel density? just move the gadget closer! | ||
We need to make a lot of progress on Folk and on the gadget design to be able to build these, but it's very exciting, and it does feel like the ideas are generated by having the gadget in hand. I think it's been well worth the effort of building it. | We need to make a lot of progress on Folk and on the gadget design to be able to build these, but it's very exciting, and it does feel like the ideas are generated by having the gadget in hand. I think it's been well worth the effort of building it. | ||
+ | |||
+ | === Playbook === | ||
+ | |||
+ | Over the course of my week in San Francisco, I kind of developed a playbook of quick virtual demos that show some programmability and dynamism on the Folk gadget (although not as good as a full tabletop system with physical programs yet, obviously). | ||
+ | |||
+ | It goes something like: | ||
+ | |||
+ | - Set up Wi-Fi on laptop, plug gadget in with huge extension cord: red calibration error appears on projection, so you know it's on | ||
+ | - Go to http:// | ||
+ | - Program '' | ||
+ | - Program scaled label (we should add sugar so this is less of a jump from previous): shows live programmability < | ||
+ | When $this has region /r/ & the clock time is /t/ { | ||
+ | lassign [region centroid $r] x y | ||
+ | Wish to draw text with text " | ||
+ | } | ||
+ | </ | ||
+ | - Program animating scaled label: shows movement, not a static image anymore < | ||
+ | When $this has region /r/ & the clock time is /t/ { | ||
+ | lassign [region centroid $r] x y | ||
+ | Wish to draw text with text " | ||
+ | } | ||
+ | </ | ||
+ | - Program camera feedback: shows that camera is active, gadget interacts with the outside world and isn't just a screen < | ||
+ | When camera /any/ has frame /f/ at timestamp /ts/ { | ||
+ | Wish $this displays image $f | ||
+ | } | ||
+ | </ | ||
+ | - Calibrate on http:// | ||
+ | - {{newsletters: | ||
+ | |||
=== Hardware === | === Hardware === | ||
Line 118: | Line 148: | ||
And I got shorter cables with right angles and/or ribbons, which save space and remove strain (from cables being too long) that was causing a lot of random instability/ | And I got shorter cables with right angles and/or ribbons, which save space and remove strain (from cables being too long) that was causing a lot of random instability/ | ||
- | {{: | + | {{: |
Along with the current revision of the 3D-printed chassis, the gadget feels pretty stable in terms of hardware now, and it doesn' | Along with the current revision of the 3D-printed chassis, the gadget feels pretty stable in terms of hardware now, and it doesn' | ||
Line 148: | Line 178: | ||
A few different Pi-5-specific (and/or portable-gadget-specific) software issues: | A few different Pi-5-specific (and/or portable-gadget-specific) software issues: | ||
+ | |||
+ | == Pass 4 vertices to VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP == | ||
+ | |||
+ | This was also mentioned under misc. system improvements -- initially flagged by [[https:// | ||
+ | |||
+ | [[https:// | ||
== Descriptor indexing == | == Descriptor indexing == | ||
Line 175: | Line 211: | ||
I've been working on the camera (I think it's a Pi camera module 2, but all the Pi camera modules work the same way more or less) to try to get calibration to work. | I've been working on the camera (I think it's a Pi camera module 2, but all the Pi camera modules work the same way more or less) to try to get calibration to work. | ||
- | I want to switch from using libcamerify+v4l2 (which gives me very little control, to adjust exposure | + | I want to switch from using libcamerify+v4l2 (which gives me very little control, |
{{: | {{: | ||
Line 195: | Line 231: | ||
* Current situation is putting a few spacers behind half the camera to tilt it up toward the projector area, but even this drifts because the projector drifts, and it feels too dependent on how the screws are tightened, not replicable. | * Current situation is putting a few spacers behind half the camera to tilt it up toward the projector area, but even this drifts because the projector drifts, and it feels too dependent on how the screws are tightened, not replicable. | ||
* {{: | * {{: | ||
+ | * Maybe use a wide-angle camera instead? or shift it upward physically? | ||
+ | * Maybe lock the projector in place better? | ||
+ | * Side note: maybe multiple cameras for more stable depth perception? cameras are cheap | ||
* Figure out the Wi-Fi situation, maybe run a hotspot from the gadget automatically for now instead of connecting to Wi-Fi? we don't really use internet from it anyway right now | * Figure out the Wi-Fi situation, maybe run a hotspot from the gadget automatically for now instead of connecting to Wi-Fi? we don't really use internet from it anyway right now | ||
* Maybe try to run some AI vision models? to segment environments, | * Maybe try to run some AI vision models? to segment environments, | ||
Line 201: | Line 240: | ||
Omar: We merged 3D calibration! This is a huge advance that's been in the works for much of the last year -- we're being aggressive by merging, there are still things to fix and it's only roughly on par with the old 2D calibration (better in some cases, worse in others) -- but this is why we are pre-alpha and don't promise anything to users yet :-) | Omar: We merged 3D calibration! This is a huge advance that's been in the works for much of the last year -- we're being aggressive by merging, there are still things to fix and it's only roughly on par with the old 2D calibration (better in some cases, worse in others) -- but this is why we are pre-alpha and don't promise anything to users yet :-) | ||
+ | |||
+ | (it also means that regions are now deprecated compared to quads) | ||
+ | |||
+ | {{: | ||
(3D calibration is also quite important for the portable gadget system, since it has no fixed plane in front of it that we could 2D-calibrate.) | (3D calibration is also quite important for the portable gadget system, since it has no fixed plane in front of it that we could 2D-calibrate.) | ||
- | Mostly | + | Several small changes before merging: |
+ | |||
+ | * Fixed [[https:// | ||
+ | * [[https:// | ||
+ | * RAM watchdog | ||
+ | * Allow negative distances in '' | ||
+ | * with the camera slice fixes, | ||
+ | |||
+ | Other than these & table refine below, mostly | ||
* On folk-convivial: | * On folk-convivial: | ||
Line 259: | Line 310: | ||
Erlang is weird because of all the [[https:// | Erlang is weird because of all the [[https:// | ||
+ | |||
+ | {{: | ||
Go actually seems very close to what we want. It's a work-stealing scheduler that can deal with arbitrary CPU blocks and I/O blocks in a goroutine. It has a little bit of hinting to know about long-running work in advance (it can detect syscalls, since they all go through the Go runtime), but it also has something called [[https:// | Go actually seems very close to what we want. It's a work-stealing scheduler that can deal with arbitrary CPU blocks and I/O blocks in a goroutine. It has a little bit of hinting to know about long-running work in advance (it can detect syscalls, since they all go through the Go runtime), but it also has something called [[https:// | ||
Line 277: | Line 330: | ||
* Trigger button | * Trigger button | ||
* Cat printer support | * Cat printer support | ||
+ | * Put design online? | ||
* Merge Daniel' | * Merge Daniel' | ||
* Daniel hacking on touch detection a bit | * Daniel hacking on touch detection a bit |
newsletters/2024-08.1725409017.txt.gz · Last modified: 2024/09/04 00:16 by osnr