newsletters:2024-02
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| newsletters:2024-02 [2024/02/29 15:46] – osnr | newsletters:2024-02 [2024/02/29 22:22] (current) – osnr | ||
|---|---|---|---|
| Line 13: | Line 13: | ||
| * Integration with [[https:// | * Integration with [[https:// | ||
| - | * Andrés magazine article | + | * Andrés |
| + | * {{newsletters: | ||
| (Omar: Both Forrest and Vedran' | (Omar: Both Forrest and Vedran' | ||
| Line 22: | Line 23: | ||
| ==== Template matching ==== | ==== Template matching ==== | ||
| + | |||
| + | Andrés: I've spent most of this month working on template matching (finding the location of an image in a larger image) to enable tracking custom game pieces in Folk. I wanted a basic demo where you can: | ||
| + | |||
| + | - capture a small, square image from the table, this is known as a template. | ||
| + | - run a program that continuously searches for the template and highlight its location | ||
| + | |||
| + | To that end, I wrapped a few programs into this "Image Slice Matcher" | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | When you open the folder, the left side includes two programs: on the full-size page is a program titled " | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | In a previous version, you had to manually take a photo of the table in order to recognize a template. Now the program reads the global camera image from Folk's main process. This allows the program that looks for and highlights matches to operate much faster and work continuously. Here it is searching for the cover of a small zine as I move it around the desk: | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | Next month, I'll be extending this to track game pieces in a booklet of games I've been working on. | ||
| ==== Parallel evaluator ==== | ==== Parallel evaluator ==== | ||
| Line 62: | Line 84: | ||
| ---- | ---- | ||
| - | Example of how you'll be able to write programs/ | + | Example of how you'll be able to write programs/ |
| {{newsletters: | {{newsletters: | ||
| - | This is useful, for example, for talking to webcams: you can have a virtual program that is a simple infinite loop, where the body blocks on the webcam read from Linux, then '' | + | This is useful, for example, for talking to webcams: you can have a virtual program that is a simple infinite loop, where the body blocks on the webcam read from Linux, then '' |
| + | |||
| + | Also notice how the other thread gets arbitrary samples of the counter value (0, 97, 107, etc), it doesn' | ||
| + | |||
| + | (If you _do_ want to process intermediate states, you want something with different semantics from normal statements, like event statements or something. This is an open question.) | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{: | ||
| + | |||
| + | (under the new evaluator, I'm hoping you can just beam stuff out to the GPU at 60fps, using '' | ||
| ---- | ---- | ||
| - | Ported the web server, which (elegantly) can now just be a normal virtual program, since its blocking on clients/ | + | Ported the web server, which (elegantly) can now just be a normal virtual program, since it blocking on clients/ |
| {{newsletters: | {{newsletters: | ||
| - | Ported most virtual programs (camera, AprilTag, GPU/ | + | Ported most virtual programs (camera, AprilTag, GPU/ |
| - | Even mostly works on my laptop (because we' | + | Even mostly works on my laptop (because we' |
| {{newsletters: | {{newsletters: | ||
| Line 95: | Line 127: | ||
| {{: | {{: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Next steps here are to figure out the data structures/ | ||
| + | |||
| ==== RFID ==== | ==== RFID ==== | ||
| Line 112: | Line 149: | ||
| * {{: | * {{: | ||
| * Now trying to speed up the IB decoder even more to give us more headroom. Simpler pulse detector that uses a window instead of needing to scan 2*buf, removing heap allocations on the decode path, stuff like that | * Now trying to speed up the IB decoder even more to give us more headroom. Simpler pulse detector that uses a window instead of needing to scan 2*buf, removing heap allocations on the decode path, stuff like that | ||
| - | * (Sometimes | + | * (sometimes |
| + | |||
| + | There must be some bit of hidden state in the IB radio that causes it to go off the rails and consistently fail after that 1-2 rounds... fix that & fix error recovery, then set up OOB(s), then set up localization. | ||
| ==== Friends and outreach ==== | ==== Friends and outreach ==== | ||
| Line 130: | Line 169: | ||
| * We even tried hanging the webcam by its cable, just for fun: | * We even tried hanging the webcam by its cable, just for fun: | ||
| * {{newsletters: | * {{newsletters: | ||
| + | |||
| ==== Other work ==== | ==== Other work ==== | ||
| * Got folk0' | * Got folk0' | ||
| * (It's been an irritant for a long time, it failing to get on the network or getting on the wrong one or ending up in weird dead-end states) | * (It's been an irritant for a long time, it failing to get on the network or getting on the wrong one or ending up in weird dead-end states) | ||
| - | * Andrés fixed editor | + | * Andrés fixed a bug in the table editor that was preventing printing more than one program from an editor. Now you can print to your heart' |
| ===== What we'll be up to in March ===== | ===== What we'll be up to in March ===== | ||
| Line 140: | Line 180: | ||
| * **[[https:// | * **[[https:// | ||
| - | * New collaboration (to be announced) on deeper phone/ | + | * New collaboration (still TBA) on deeper phone/ |
| * (Omar: I did some prototyping last weekend on localizing a phone using its camera + a tag on a laptop screen. I feel like you could do clever stuff with phone sensors and dead reckoning and smoothing to make this a nice experience even if tag tracking cuts out. Ideally you could just use a valid QR code, not even a specialized fiducial. Also thinking about Joy-Cons and Wii Remotes and how they do mouse-like pointing.) | * (Omar: I did some prototyping last weekend on localizing a phone using its camera + a tag on a laptop screen. I feel like you could do clever stuff with phone sensors and dead reckoning and smoothing to make this a nice experience even if tag tracking cuts out. Ideally you could just use a valid QR code, not even a specialized fiducial. Also thinking about Joy-Cons and Wii Remotes and how they do mouse-like pointing.) | ||
| + | | ||
| + | * Fine-tuning the template matching and using it to create small board-game interactions | ||
| * Polishing Folk/CNC interface for use by other people at Hex House and in general | * Polishing Folk/CNC interface for use by other people at Hex House and in general | ||
| - | * USB stick install / Linux distro (can we make it a turnkey install if you have a CNC machine | + | * USB stick install / Linux distro |
| - | * System reliability (can we feel sure that people can walk up to it and use it?) | + | * Better Web UI |
| * Finishing up the 3D/ | * Finishing up the 3D/ | ||
| Line 152: | Line 194: | ||
| * RFID: Continuing to try to debug why we lose contact after 1-2 rounds of IB communication, | * RFID: Continuing to try to debug why we lose contact after 1-2 rounds of IB communication, | ||
| - | * Parallel evaluator: continuing to work on locking and scheduling, | + | * Parallel evaluator: continuing to work on locking and scheduling, |
| ===== Links we've enjoyed ===== | ===== Links we've enjoyed ===== | ||
| Line 159: | Line 202: | ||
| * https:// | * https:// | ||
| * http:// | * http:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| ==== Andrés ==== | ==== Andrés ==== | ||
| + | |||
| + | * [[https:// | ||
| + | — Books that makes heavy use of visuals for scientific communication]] | ||
| + | * [[https:// | ||
newsletters/2024-02.1709221615.txt.gz · Last modified: by osnr
