Mercurial
comparison infinite_canvas/README.md @ 282:6bd4a3990696 default tip
Add cross-platform canvas orchestration and typed composer
Enable native ARM dependencies, macOS Copilot orchestration, portable service supervision, CPU dictation, and a shared N-key speak-or-type composer.
Co-authored-by: Copilot <[email protected]>
Copilot-Session: f68442b1-fa8f-46a0-9689-81710613bbd4
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Thu, 20 Aug 2026 20:45:25 -0700 |
| parents | c57149ad216e |
| children |
comparison
equal
deleted
inserted
replaced
| 281:c57149ad216e | 282:6bd4a3990696 |
|---|---|
| 4 infinite canvas. | 4 infinite canvas. |
| 5 | 5 |
| 6 ## Build and run | 6 ## Build and run |
| 7 | 7 |
| 8 ```bash | 8 ```bash |
| 9 # Native development build with Raygui controls | 9 # Native development build with Raygui controls. This automatically selects |
| 10 # Linux, macOS, or Windows and the host CPU architecture. | |
| 10 bazel run //infinite_canvas:dev | 11 bazel run //infinite_canvas:dev |
| 11 | 12 |
| 12 # Start directly in the ten-browser stress scene | 13 # Start directly in the ten-browser stress scene |
| 13 INFINITE_CANVAS_BROWSER_STRESS=1 bazel run //infinite_canvas:dev | 14 INFINITE_CANVAS_BROWSER_STRESS=1 bazel run //infinite_canvas:dev |
| 14 | 15 |
| 17 | 18 |
| 18 # Browser build and local server | 19 # Browser build and local server |
| 19 bazel build //infinite_canvas:infinite_canvas_wasm | 20 bazel build //infinite_canvas:infinite_canvas_wasm |
| 20 bazel run //infinite_canvas:serve | 21 bazel run //infinite_canvas:serve |
| 21 ``` | 22 ``` |
| 23 | |
| 24 ### Native platform support | |
| 25 | |
| 26 | Host | Canvas and CEF | Copilot orchestration | | |
| 27 | --- | --- | --- | | |
| 28 | Linux x86-64 | Supported | Supported | | |
| 29 | macOS Apple Silicon | Supported | Supported | | |
| 30 | macOS Intel | Supported | Supported | | |
| 31 | Windows ARM64 | Supported | Not yet; uses the explicit unavailable-service response | | |
| 32 | Windows x86-64 | Supported | Not yet; uses the explicit unavailable-service response | | |
| 33 | |
| 34 The default `//infinite_canvas:dev` and `//infinite_canvas:app` targets select | |
| 35 the current host automatically. The explicit `//config:macos_arm64` and | |
| 36 `//config:windows_arm64` platform targets are intended for CI and reproducible | |
| 37 build selection: | |
| 38 | |
| 39 ```bash | |
| 40 bazel build //infinite_canvas:dev_bin --platforms=//config:macos_arm64 | |
| 41 bazel build //infinite_canvas:dev_bin --platforms=//config:windows_arm64 | |
| 42 ``` | |
| 43 | |
| 44 These commands require a matching native C/C++ toolchain. They do not imply | |
| 45 cross-compilation from Linux. Raylib 6.0 and CEF 151 are selected by both OS | |
| 46 and CPU, so an ARM64 host no longer links x86-64 browser or rendering | |
| 47 libraries. | |
| 22 | 48 |
| 23 Open `http://127.0.0.1:4343/index.html` after starting the server. Pass a | 49 Open `http://127.0.0.1:4343/index.html` after starting the server. Pass a |
| 24 different port as an argument only when needed. | 50 different port as an argument only when needed. |
| 25 | 51 |
| 26 The native development target opens at 1920x1200 and starts with a gallery | 52 The native development target opens at 1920x1200 and starts with a gallery |
| 40 - WASD or arrow keys: pan (disabled while a text area has keyboard focus) | 66 - WASD or arrow keys: pan (disabled while a text area has keyboard focus) |
| 41 - Left-mouse drag on an entity: select and move it | 67 - Left-mouse drag on an entity: select and move it |
| 42 - `P`: pin or unpin the selected entity in screen space so it remains visible | 68 - `P`: pin or unpin the selected entity in screen space so it remains visible |
| 43 while the camera pans and zooms; pinned entities show a Lucide pin glyph | 69 while the camera pans and zooms; pinned entities show a Lucide pin glyph |
| 44 - `M`: show centered live dictation text and toggle microphone capture | 70 - `M`: show centered live dictation text and toggle microphone capture |
| 45 - `Enter`: send visible dictation text to the spatial agent | 71 - `N`: open and focus the same Dictation entity for keyboard input |
| 72 - `Enter`: send the shared spoken or typed thought to the spatial agent | |
| 73 - `Shift+Enter`: insert a newline while typing in the Dictation entity | |
| 46 - `Ctrl/Cmd+Enter`: submit the selected text area's thought to Copilot | 74 - `Ctrl/Cmd+Enter`: submit the selected text area's thought to Copilot |
| 47 - `Delete`/`Backspace`: fade out and remove the selected entity | 75 - `Delete`/`Backspace`: fade out and remove the selected entity |
| 48 - Development toolbar: spawn/clear entities, reset the camera, or restore the | 76 - Development toolbar: spawn/clear entities, reset the camera, or restore the |
| 49 deterministic demo scene; spawned entities fade in and Clear fades all | 77 deterministic demo scene; spawned entities fade in and Clear fades all |
| 50 entities out before removal. Use the header arrow to collapse the toolbar | 78 entities out before removal. Use the header arrow to collapse the toolbar |
| 105 ```bash | 133 ```bash |
| 106 bazel run //infinite_canvas:orchestration_dev | 134 bazel run //infinite_canvas:orchestration_dev |
| 107 ``` | 135 ``` |
| 108 | 136 |
| 109 `//infinite_canvas:agent_dev` remains an alias. Closing the canvas stops the | 137 `//infinite_canvas:agent_dev` remains an alias. Closing the canvas stops the |
| 110 supervised local services. | 138 supervised local services. The target selects the matching Copilot CLI and |
| 139 Python toolchain automatically. Dictation uses CUDA with `int8_float16` on | |
| 140 Linux and CPU inference with `int8` on macOS. | |
| 111 | 141 |
| 112 Press `M` to start or stop the local WebRTC microphone session. The browser | 142 Press `M` to start or stop the local WebRTC microphone session. The browser |
| 113 transport is prewarmed and remains hidden: it acquires the native microphone | 143 transport is prewarmed and remains hidden: it acquires the native microphone |
| 114 permission, device, signaling, ICE connection, and transcript data channel | 144 permission, device, signaling, ICE connection, and transcript data channel |
| 115 ahead of the first hotkey while keeping the audio track disabled. `M` therefore | 145 ahead of the first hotkey while keeping the audio track disabled. `M` therefore |