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:04] – 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 99: | Line 96: | ||
==== 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 (some are general Folk ideas also, but they feel more vital and mobile with the handheld gadget): | ||
+ | |||
+ | * Trigger button to ' | ||
+ | * notice how other people can see it, it's more social, it's not just on your phone | ||
+ | * How to connect gadget to local Wi-Fi network? You carry a laminated card with fields for SSID and password + a fiducial marker, you fill out the fields with a pen, then scan the card with the Folk gadget to connect | ||
+ | * Fuller handwriting interaction where you write in a notebook and the gadget projects responses, you get like a ' | ||
+ | * Receipt printer + gadget let you carry a complete system in a lunchbox and pull it out and cover a whole table with computational objects | ||
+ | * 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 | ||
+ | * 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. | ||
+ | |||
+ | === 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 106: | 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 136: | 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 163: | 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 183: | 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, | ||
==== 3D calibration ==== | ==== 3D calibration ==== | ||
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 246: | 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 264: | 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.1725408255.txt.gz · Last modified: 2024/09/04 00:04 by osnr