newsletters:2024-03
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
newsletters:2024-03 [2024/04/02 02:13] – [What we'll be up to in April] osnr | newsletters:2024-03 [2024/04/02 02:48] (current) – Add Forrest youtube links & embeds admin | ||
---|---|---|---|
Line 10: | Line 10: | ||
* For me the natural next step once I had highlighting working last month was to make a demo tracking the position over time to enable drawing the path of the image. It's fun to paint shapes using this. | * For me the natural next step once I had highlighting working last month was to make a demo tracking the position over time to enable drawing the path of the image. It's fun to paint shapes using this. | ||
* {{newsletters: | * {{newsletters: | ||
- | * Pac-man inspired demo: | + | * Pac-Man-inspired demo: |
* The goal of the project is to explore game interactions using both physical and digital objects. My first mini-game exploring this is inspired by Pac-Man: generate a grid of dots, track the image, if there' | * The goal of the project is to explore game interactions using both physical and digital objects. My first mini-game exploring this is inspired by Pac-Man: generate a grid of dots, track the image, if there' | ||
* {{newsletters: | * {{newsletters: | ||
- | * Next step: a pong inspired demo | + | * Next step: a Pong-inspired demo |
* I want to get a simplified single-player pong experience working where you move your game piece around and bounce a ball against the wall, each time the ball gets a bit faster. I've started on the basic version of this, simulating a ball bouncing in the confines of a normal Folk program. It's satisfying to watching it move around like a little screensaver: | * I want to get a simplified single-player pong experience working where you move your game piece around and bounce a ball against the wall, each time the ball gets a bit faster. I've started on the basic version of this, simulating a ball bouncing in the confines of a normal Folk program. It's satisfying to watching it move around like a little screensaver: | ||
* {{newsletters: | * {{newsletters: | ||
- | | + | |
+ | |||
+ | * [[https:// | ||
+ | * {{youtube> | ||
+ | |||
+ | * [[https:// | ||
+ | * {{youtube> | ||
+ | * {{youtube> | ||
+ | |||
+ | * [[https:// | ||
==== New evaluator ==== | ==== New evaluator ==== | ||
Line 42: | Line 51: | ||
Nice side benefit of the new evaluator: it boots much faster, making it faster to iterate and test things, because it's only compiling virtual-program-level C code (Gpu, AprilTags); the kernel is statically compiled into a monolithic folk binary. (this feels like a reasonable tradeoff, since no one was messing with the kernel in practice anyway) | Nice side benefit of the new evaluator: it boots much faster, making it faster to iterate and test things, because it's only compiling virtual-program-level C code (Gpu, AprilTags); the kernel is statically compiled into a monolithic folk binary. (this feels like a reasonable tradeoff, since no one was messing with the kernel in practice anyway) | ||
+ | Some remaining stuff to do: | ||
+ | * Performance optimization so we can get it to beat old evaluator, which is the whole point | ||
+ | * Implement Collect & text/labels (the major missing functionality in new evaluator) | ||
+ | * Fix memory leaks (it might end up better than old evaluator here too, since that is leaky anyway) | ||
+ | * Thread management so we can spin up new worker threads as needed to run Whens when current workers are asleep/ | ||
+ | |||
+ | There are still some high-level challenges from parallelizing the workqueue, stuff that we 'got for free' from having a single thread and converging to a fixed point. like, what order do you do operations in, how do you avoid wasted work, what does ' | ||
==== Live USB & distribution ==== | ==== Live USB & distribution ==== | ||
Line 49: | Line 65: | ||
The main thing is making a live USB that just boots into Folk and walks through calibration & network setup and can install to disk. (the near-term application is to distribute a version of the CNC stuff as a demo that is immediately useful) | The main thing is making a live USB that just boots into Folk and walks through calibration & network setup and can install to disk. (the near-term application is to distribute a version of the CNC stuff as a demo that is immediately useful) | ||
- | I've been using Debian live-build, which seems to be the de facto standard for making live USBs: documentation/ | + | I've been using Debian live-build, which seems to be the de facto standard for making live USBs: documentation/ |
- | * Folk running | + | (I've been building the live .iso in an Intel Linux UTM/qemu VM on my Mac laptop, which is a little annoying. I think the live build process is already slow, it's not incremental at all, so it's installing all the stuff for this 1.4GB Debian setup from scratch on each build, and it's even slower because it's in emulation. I also burned some time trying to make the live USB itself work in a VM to test on my laptop -- the graphics doesn' |
+ | |||
+ | * So we got a $40 used Dell Chromebook 11 laptop | ||
* {{newsletters: | * {{newsletters: | ||
- | * {{newsletters: | + | * {{newsletters: |
* Did take a day or two to [[https:// | * Did take a day or two to [[https:// | ||
* Neat: built-in webcam & display work out of the box as a quick demo that the system is running and working | * Neat: built-in webcam & display work out of the box as a quick demo that the system is running and working | ||
* Goal: distribute CNC demo as a live USB that a computer can just boot into | * Goal: distribute CNC demo as a live USB that a computer can just boot into | ||
- | | + | * Will have to port the projector side of the CNC demo to run on Folk, but that should be quick, it's just lines and checkerboard; |
- | * Status report if no programs are out: are we online? IP address? network interfaces? current git revision? number of displays/ | + | |
+ | * Status report if no programs are out (or maybe always-on in corner): are we online? IP address? network interfaces? current git revision? number of displays/ | ||
* Wi-Fi setup process (not strictly necessary if the USB stick is self-contained and the Folk box has a display & keyboard, but useful so you can go to web view and ssh in from your normal computer, so Folk can federate to other Folk instances on network, so Folk can connect to network printer, & so we can pull a newer version of Folk from online if applicable) | * Wi-Fi setup process (not strictly necessary if the USB stick is self-contained and the Folk box has a display & keyboard, but useful so you can go to web view and ssh in from your normal computer, so Folk can federate to other Folk instances on network, so Folk can connect to network printer, & so we can pull a newer version of Folk from online if applicable) | ||
- | * Boot into terminal | + | * Terminal by default on boot? -- may be our first way to do Wi-Fi setup, you just run iwd and dhclient stuff from an embedded terminal in Folk so we don't need to make UI for everything at first |
* Calibration (incl a physical rig for it) | * Calibration (incl a physical rig for it) | ||
* Support addressing multiple projectors & multiple cameras | * Support addressing multiple projectors & multiple cameras | ||
Line 67: | Line 86: | ||
==== Friends and outreach ==== | ==== Friends and outreach ==== | ||
- | * March open house: We had a small but really fun open house where we showed the new template matching demo & people got a chance to make a few programs using the table editors. | + | |
+ | * {{newsletters: | ||
+ | * {{newsletters: | ||
+ | |||
+ | | ||
* {{newsletters: | * {{newsletters: | ||
- | * {{newsletters: | + | * {{newsletters: |
- | * {{newsletters: | + | |
- | * Recurse Center visitors in mid-March: | + | |
- | * {{newsletters: | + | |
- | * {{newsletters: | + | |
- | * {{newsletters: | + | |
- | * {{newsletters: | + | |
===== What we'll be up to in April ===== | ===== What we'll be up to in April ===== | ||
Line 82: | Line 99: | ||
* Finalizing the template matching games booklet | * Finalizing the template matching games booklet | ||
* Collaboration for deeper phone/ | * Collaboration for deeper phone/ | ||
- | * Finish up the live-USB project, | + | * Finish up the live-USB project, |
* Possibly: | * Possibly: | ||
* Revisit RFID: it got pushed out a bit in March, but it's in a decent state right now | * Revisit RFID: it got pushed out a bit in March, but it's in a decent state right now |
newsletters/2024-03.1712023993.txt.gz · Last modified: 2024/04/02 02:13 by osnr