User Tools

Site Tools


newsletters:2024-03

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
newsletters:2024-03 [2024/04/02 02:18] – [Live USB & distribution] osnrnewsletters: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:img_4719.gif}}         * {{newsletters:img_4719.gif}}
-    * 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's an intersection between a dot and the image delete the dots. I'll build on this by having a random path of dots rather than a grid so it's a different experience every time.       * 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's an intersection between a dot and the image delete the dots. I'll build on this by having a random path of dots rather than a grid so it's a different experience every time.
         * {{newsletters:img_4925.gif}}         * {{newsletters:img_4925.gif}}
-    * 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:bouncing-ball.gif}}         * {{newsletters:bouncing-ball.gif}}
-  * I also spent a few days this month figuring out what sorts of game interactions I want in the project. In the end I want a booklet of at least 5 games that show off the unique combination of interactions between physical and digital game pieces that Folk provides.+    * I also spent a few days this month figuring out what sorts of game interactions I want in the project. In the end I want a booklet of at least 5 games that show off the unique combination of interactions between physical and digital game pieces that Folk provides. 
 + 
 +  * [[https://vedranb.com|Vedran Budimcic]] has been developing his Scratch-like programming environment for Folk -- it now has animation: 
 +    * {{youtube>Z_bMrp_-G6I?}} 
 + 
 +  * [[https://www.forresto.com|Forrest O.]] has been doing a lot of experiments with his [[https://www.youtube.com/watch?v=2mRqCtfaogY|hexagon tiles]], making [[https://www.youtube.com/watch?v=lHjmi4cxUC4|mini-games]], [[https://www.youtube.com/watch?v=H3AHmIHRWPs|rainbow outlining]] and [[https://www.youtube.com/watch?v=ngB2AQdHdTM|animation]], and [[https://www.youtube.com/shorts/F4xEztsgJYQ|loop puzzles]] 
 +    * {{youtube>ngB2AQdHdTM?}} 
 +    * {{youtube>lHjmi4cxUC4?}} 
 + 
 +  * [[https://cristobal.space|Cristóbal Sciutto]] mirrored his [[notes:tableshots|"Towards a folk computer"]] piece about tableshots [[https://cristobal.space/writing/folk-computer.html|up on his site]]
  
 ==== 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/blocked/unresponsive
 +
 +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 'order' mean if things can happen in parallel.. I think we can hack around a lot of this by messing with priorities and specifying manual 'wait a few milliseconds' type stuff for specific Whens, or maybe having some notion of local convergence or subconvergence.
  
 ==== 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/resources are pretty good, you can preinstall any packages from Debian, etc. Good resources are https://terkeyberger.wordpress.com/2022/03/07/live-build-how-to-build-an-installable-debian-10-buster-live-cd/ and https://dquinton.github.io/debian-install/netinstall/live-build.html+I've been using Debian live-build, which seems to be the de facto standard for making live USBs: documentation/resources are pretty good, you can preinstall any packages from Debian, etc. Good resources are https://terkeyberger.wordpress.com/2022/03/07/live-build-how-to-build-an-installable-debian-10-buster-live-cd/ and https://dquinton.github.io/debian-install/netinstall/live-build.html (it's an interesting game to figure out the minimal set of Debian packages to preinstall so you get a 1. working Folk on boot and 2. working internet connection, and after that you don't need to rebuild until you publish, hopefully, since you can hot patch from online on boot)
  
 (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't work, since there's no Vulkan driver for the VM. could use SwiftShader or llvmpipe, but they don't have VK_KHR_display, so now you need a new codepath in Folk and maybe you need libdrm again to put your software-rendered buffer onto the VM's screen...) (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't work, since there's no Vulkan driver for the VM. could use SwiftShader or llvmpipe, but they don't have VK_KHR_display, so now you need a new codepath in Folk and maybe you need libdrm again to put your software-rendered buffer onto the VM's screen...)
Line 55: Line 71:
   * So we got a $40 used Dell Chromebook 11 laptop and got the Folk live USB running on it:   * So we got a $40 used Dell Chromebook 11 laptop and got the Folk live USB running on it:
     * {{newsletters:img_6654.mp4}}     * {{newsletters:img_6654.mp4}}
-    * {{newsletters:chromebook-folk-medium.jpeg}}+    * {{newsletters:chromebook-folk-medium.jpeg?400px}}
     * Did take a day or two to [[https://mrchromebox.tech|jailbreak the Chromebook]] -- you actually have to open it up and remove a firmware write-protection screw on the mainboard, then install this EFI firmware stuff which pretty much turns the Chromebook into a normal computer that can boot Windows/Linux. then you can boot it from USB stick     * Did take a day or two to [[https://mrchromebox.tech|jailbreak the Chromebook]] -- you actually have to open it up and remove a firmware write-protection screw on the mainboard, then install this EFI firmware stuff which pretty much turns the Chromebook into a normal computer that can boot Windows/Linux. then you can boot it from USB stick
     * 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
Line 70: 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.+  * Recurse Center visitors in mid-March: big crowd, people were really excited to see everything and did a lot of programming. :-) 
 +    * {{newsletters:img_6281.jpeg?400px}} {{newsletters:img_6270.jpeg?400px}} 
 +    * {{newsletters:img_6272.jpeg?400px}} {{newsletters:img_6274.jpeg?400px}} 
 + 
 +  * March open house: We had a small but really fun open house at the end of the month, where we showed the new template matching demo & people got a chance to make a few programs using the table editors.
     * {{newsletters:march-open-house.jpeg?400px}}     * {{newsletters:march-open-house.jpeg?400px}}
-    * {{newsletters:img_6475.jpeg?600}} +    * {{newsletters:img_6475.jpeg?400px}} {{newsletters:img_6470.jpeg?400px}}
-    * {{newsletters:img_6470.jpeg?600}} +
-  * Recurse Center visitors in mid-March: +
-    * {{newsletters:img_6270.jpeg?600}} +
-    * {{newsletters:img_6272.jpeg?600}} +
-    * {{newsletters:img_6274.jpeg?600}} +
-    * {{newsletters:img_6281.jpeg?600}}+
  
 ===== What we'll be up to in April ===== ===== What we'll be up to in April =====
Line 85: Line 99:
   * Finalizing the template matching games booklet   * Finalizing the template matching games booklet
   * Collaboration for deeper phone/laptop integration and knowledge management explorations in Folk, should result in a more in-depth blog post later this year   * Collaboration for deeper phone/laptop integration and knowledge management explorations in Folk, should result in a more in-depth blog post later this year
-  * Finish up the live-USB project, putting it up online, bundling CNC demo+  * Finish up the live-USB project, bundle/half-port the CNC demo, put it up online
   * 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.1712024326.txt.gz · Last modified: 2024/04/02 02:18 by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki