newsletters:2026-04
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| newsletters:2026-04 [2026/05/05 03:35] – [What we'll be up to in April] osnr | newsletters:2026-04 [2026/05/05 20:08] (current) – [NaN handling] osnr | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== April 2026 newsletter | + | ====== April 2026 newsletter ====== |
| - | {{htmlmetatags> | + | {{htmlmetatags> |
| metatag-media-og: | metatag-media-og: | ||
| metatag-og: | metatag-og: | ||
| Line 11: | Line 11: | ||
| - | We'll be giving a talk at SVA this Friday, May 8: | + | We' |
| [[{}https:// | [[{}https:// | ||
| ===== What we've been up to ===== | ===== What we've been up to ===== | ||
| + | |||
| + | ==== General system improvements ==== | ||
| + | |||
| + | * [[https:// | ||
| + | * Andrés [[https:// | ||
| + | * {{.: | ||
| + | * Andrés [[https:// | ||
| + | * Andrés [[https:// | ||
| + | * Omar improved the new logging system: | ||
| + | * Put all logs for a given folk PID in / | ||
| + | * Report web system error at console since without working web page, hard to debug failures | ||
| + | * Fix various cases where we weren' | ||
| + | * Omar improved the in-system build of libapriltag and libwslay (moved them out of Makefile last month) so they rebuild on any change in the builtin programs, don't require patchelf hack, and hold all dependent programs back until actually compiled | ||
| + | |||
| + | === Bluetooth keyboard support === | ||
| + | |||
| + | Omar and Andrés started working on new Bluetooth keyboard support, where we don't need a custom udev device path in '' | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | |||
| + | === Multi-display / multi-camera support === | ||
| + | |||
| + | Omar: The new Folk setup at the studio has this L layout where we want at least 2 projectors and 2 cameras connected to the same PC, so I've been working on refactoring Folk so that one Folk system can calibrate and drive all that hardware simultaneously. (until now, every Folk system has had exactly 1 active projector and 1 active camera) | ||
| + | |||
| + | While at it, I also wanted to improve support for these types of ELP stereo cameras, which we have been using in the gadget (but are not really using the stereo yet). Trying to use it in the studio Folk setup as well. | ||
| + | |||
| + | {{newsletters: | ||
| + | |||
| + | Given this stereo camera, how can we add crop support to the UI and ultimately calibrate and use both ' | ||
| + | |||
| + | |||
| + | === Easier camera config === | ||
| + | |||
| + | |||
| + | Added a setting on /camera that lets you set the exposure (and auto-exposure mode) live right there. Also now iframe /camera on the calibration page, so we have just that one uniform UI for camera config (including any future settings we might want to add), rather than /calibrate having its own one-off exposure slider. | ||
| + | |||
| + | === Camera crop === | ||
| + | |||
| + | I added a camera crop UI to the Folk /setup interface. You create a " | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | (We use this to pick just the left eye for now out of a stereo side-by-side ELP image, but eventually want to use this to create two virtual cameras, one from each eye, to co-calibrate.) | ||
| + | |||
| + | |||
| + | === GPU refactor for multiple displays === | ||
| + | |||
| + | Omar: [[https:// | ||
| + | |||
| + | Now when you boot Folk on a PC with two displays, we can draw to both, but it's still the same stuff drawn to both. In order to have a properly multi-display Folk system, we need to change a lot of the draw statements to be scoped to a specific display, which may be a breaking API change. | ||
| + | ==== Ideas for fixing pose estimation errors ==== | ||
| + | |||
| + | Some systems have [[https:// | ||
| + | |||
| + | Here is a simple proposal: | ||
| + | |||
| + | {{newsletters: | ||
| ==== New studio setup ==== | ==== New studio setup ==== | ||
| + | |||
| + | Last month, we started [[newsletters/ | ||
| === L-shaped dedicated area for Folk === | === L-shaped dedicated area for Folk === | ||
| Line 30: | Line 90: | ||
| Was trying the Logitech Brio 4K on one side and NexiGo on the other side at first. Horrible issues with USB3; ultimately gave up on the Brio 4K for now. | Was trying the Logitech Brio 4K on one side and NexiGo on the other side at first. Horrible issues with USB3; ultimately gave up on the Brio 4K for now. | ||
| + | |||
| + | {{newsletters: | ||
| {{.: | {{.: | ||
| - | (I think it' | + | (I think it might be the SAM2 demo I have on the table that's running/ |
| === Communal table (folk-convivial) / JMGO N1 Ultra setup === | === Communal table (folk-convivial) / JMGO N1 Ultra setup === | ||
| Line 50: | Line 113: | ||
| It's not as light as the AAXA 4K1 (4ish pounds), but it's similar price and much, much brighter. | It's not as light as the AAXA 4K1 (4ish pounds), but it's similar price and much, much brighter. | ||
| - | C-stand | + | Set it up on a tall C-stand |
| - | {{newsletters: | + | {{newsletters: |
| - | + | ||
| - | {{newsletters: | + | |
| === Moving the CNC machine === | === Moving the CNC machine === | ||
| Line 71: | Line 132: | ||
| ==== SVA setup ==== | ==== SVA setup ==== | ||
| - | TODO | + | |
| - | ==== General system improvements ==== | + | * {{:newsletters:sva_demo_shortened.mp4?400px|SVA demo — making a simple "Wish $this is outlined green" program via the web editor}} |
| - | + | * {{newsletters:sva_small_demo_pic.jpeg?400px|A blue outlined program | |
| - | * TODO | + | |
| - | | + | |
| - | * {{.:pasted:20260428-173111.png?250px}} | + | |
| - | * Andrés [[https://github.com/ | + | |
| - | * Andrés [[https:// | + | |
| - | * Omar improved | + | |
| - | * Put all logs for a given folk PID in / | + | |
| - | * Report web system error at console since without working web page, hard to debug failures | + | |
| - | * Fix various cases where we weren' | + | |
| - | + | ==== Interactively refine calibration | |
| - | === Bluetooth keyboard support === | + | |
| - | + | ||
| - | Omar started working on new Bluetooth keyboard support where we don't need a custom udev device path in '' | + | |
| - | === Multi-display / multi-camera support === | + | |
| - | + | ||
| - | Omar: The new Folk setup at the studio has this L layout where we want at least 2 projectors and 2 cameras connected to the same PC, so I've been working on refactoring Folk so that one Folk system can calibrate and drive all that hardware simultaneously. (until now, every Folk system has had exactly 1 active projector and 1 active camera) | + | |
| - | + | ||
| - | While at it, I also wanted to improve support for these types of ELP stereo cameras, which we have been using in the gadget (but are not really using the stereo yet). Trying to use it in the studio Folk setup as well. | + | |
| - | + | ||
| - | {{newsletters: | + | |
| - | + | ||
| - | Given this stereo camera, how can we add crop support to the UI and ultimately calibrate and use both ' | + | |
| - | + | ||
| - | === Camera crop === | + | |
| - | + | ||
| - | I added a camera crop UI to the Folk /setup interface. You create a " | + | |
| - | + | ||
| - | {{newsletters: | + | |
| - | + | ||
| - | (We use this to pick just the left eye for now out of a stereo side-by-side ELP image, but eventually want to use this to create virtual cameras out of both eyes to co-calibrate.) | + | |
| - | + | ||
| - | === Easier camera config === | + | |
| - | + | ||
| - | + | ||
| - | Added a setting on /camera that lets you set the exposure (and auto-exposure mode) live right there. Also now iframe /camera on the calibration page, so we have just that one uniform UI for camera config (including any future settings we might want to add), rather than /calibrate having its own one-off exposure slider. | + | |
| - | + | ||
| - | + | ||
| - | === GPU refactor for multiple displays === | + | |
| - | + | ||
| - | + | ||
| - | === Interactively refine calibration === | + | |
| Omar: This is still on a branch, but hasn't been that successful an experiment. Will try a few more things. The goal here is to get calibrate to 1. work better on various cameras we have (ELP stereo camera has a lot of distortion) and 2. be easier to fixup later if you bump the camera. | Omar: This is still on a branch, but hasn't been that successful an experiment. Will try a few more things. The goal here is to get calibrate to 1. work better on various cameras we have (ELP stereo camera has a lot of distortion) and 2. be easier to fixup later if you bump the camera. | ||
| Line 121: | Line 142: | ||
| (Usually, in my experience, calibration quality rides on the specific camera you're using. Projectors are usually easy-ish to calibrate [except ultra-short-throw], | (Usually, in my experience, calibration quality rides on the specific camera you're using. Projectors are usually easy-ish to calibrate [except ultra-short-throw], | ||
| - | == NaN handling == | + | === NaN handling |
| People regularly have this silent failure when calibrating, | People regularly have this silent failure when calibrating, | ||
| Line 127: | Line 148: | ||
| {{newsletters: | {{newsletters: | ||
| - | + | Now capping the number of optimization iterations and throwing an error when NaN appears in any parameter. Still need to report to frontend UI. | |
| - | == Live preview on /calibrate == | + | === Inline live preview on / |
| Made preview on /calibrate a side panel: reduces the length of the page / amount of stuff on the critical path that you read, makes it easier to see what's going on as you calibrate and refine and adjust exposure in real-time. | Made preview on /calibrate a side panel: reduces the length of the page / amount of stuff on the critical path that you read, makes it easier to see what's going on as you calibrate and refine and adjust exposure in real-time. | ||
newsletters/2026-04.1777952136.txt.gz · Last modified: by osnr
