Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
8940488
progress so far
nikivanov Apr 12, 2026
2b1f7b3
fixed screen order
nikivanov Apr 12, 2026
f11a9bf
fixed bugs and layout sizing
nikivanov Apr 12, 2026
a7a60eb
renames and other cleanup
nikivanov Apr 13, 2026
7582674
no more claude mount
nikivanov Apr 13, 2026
92f94cb
claude mount, dpad fix, svg fix
nikivanov Apr 14, 2026
baf4940
better dpad, better svg preview
nikivanov Apr 14, 2026
fbd3492
compress static assets
nikivanov Apr 14, 2026
bc75293
drawing commands stored compressed
nikivanov Apr 16, 2026
08726f4
first pass
nikivanov Apr 17, 2026
7d944fe
better sizing
nikivanov Apr 17, 2026
c961008
finished zigzag renderer
nikivanov Apr 17, 2026
8d0610f
black and white point, pen width
nikivanov Apr 23, 2026
48ccae8
speed selector
nikivanov Apr 23, 2026
fdf6271
compress once
nikivanov Apr 23, 2026
836fd01
changed theme
nikivanov Apr 23, 2026
3562fa2
more ui improvements
nikivanov Apr 24, 2026
a76b6db
added jogging, goes out of bounds for some reason
nikivanov Apr 25, 2026
d78e780
new display, untested
nikivanov Apr 27, 2026
80e05fc
display works in software
nikivanov Apr 29, 2026
0cf152e
more margin, less jog speed, reset to defaults
nikivanov May 4, 2026
2a4290b
boundary clamping for zigzag
nikivanov May 4, 2026
2c4e71f
fixed angled lines
nikivanov May 8, 2026
23085a3
added fm to zigzags. Fixed angled lines terminating
nikivanov May 8, 2026
8e21f15
fixed scroll jumping
nikivanov May 9, 2026
8914fc7
added speed warning
nikivanov May 10, 2026
c122c0b
ui fixes
nikivanov May 11, 2026
e22561a
raster offset padding on the top
nikivanov May 13, 2026
3c4116b
Merge pull request #79 from nikivanov/compress-all-the-things
nikivanov May 13, 2026
e91503c
Merge pull request #80 from nikivanov/zig-zag-renderer
nikivanov May 13, 2026
b2a9e90
fixed build
nikivanov May 13, 2026
73ace8c
lift on transparent
nikivanov May 13, 2026
83d842c
margins plumbing
nikivanov May 14, 2026
4e27a97
fixed modal sliders
nikivanov May 18, 2026
7b23140
corrected d_t to use 85.90 spacing
nikivanov May 20, 2026
6e50861
grid cache for optimizer
nikivanov May 28, 2026
139a359
pen width up to 2mm
nikivanov May 28, 2026
f21798c
lower limit for the new rack and pinion pen driver
nikivanov May 31, 2026
43a86ab
fixed sliders
nikivanov Jun 5, 2026
a49cc1f
fixed btoa
nikivanov Jun 14, 2026
7a738fc
Merge pull request #83 from nikivanov/faster-optimizer
nikivanov Jun 14, 2026
83f02ba
Merge pull request #85 from nikivanov/new-pen-rack
nikivanov Jun 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .devcontainer/Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@ RUN sudo apt-get update \
&& sudo apt-get -y install --no-install-recommends \
clang \
python3-venv \
udev
udev \
pkg-config \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
libpixman-1-dev

## Set up udev rules for PlatformIO
RUN curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
Expand Down
14 changes: 14 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"features": {
"ghcr.io/devcontainers/features/git-lfs:1": {
"version": "1.2.5",
"resolved": "ghcr.io/devcontainers/features/git-lfs@sha256:71c2b371cf12ab7fcec47cf17369c6f59156100dad9abf9e4c593049d789de72",
"integrity": "sha256:71c2b371cf12ab7fcec47cf17369c6f59156100dad9abf9e4c593049d789de72"
},
"ghcr.io/devcontainers/features/node:1": {
"version": "1.7.1",
"resolved": "ghcr.io/devcontainers/features/node@sha256:8c0de46939b61958041700ee89e3493f3b2e4131a06dc46b4d9423427d06e5f6",
"integrity": "sha256:8c0de46939b61958041700ee89e3493f3b2e4131a06dc46b4d9423427d06e5f6"
}
}
}
15 changes: 8 additions & 7 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,20 @@
},
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh"
},
"extensions": [
"ms-vscode.cpptools",
"platformio.platformio-ide"
"platformio.platformio-ide",
"Anthropic.claude-code"
]
}
},
"forwardPorts": [
8008
8008,
5173
],
"mounts": [
"source=/dev/,target=/dev/,type=bind,consistency=consistent"
"source=/dev/,target=/dev/,type=bind,consistency=consistent",
"source=${localEnv:HOME}/.claude,target=/home/vscode/.claude,type=bind,consistency=cached"
],
"runArgs": [
"--privileged"
Expand All @@ -34,5 +34,6 @@
},
"ghcr.io/devcontainers/features/git-lfs:1": "latest"
},
"postAttachCommand": "sudo service udev restart"
"postAttachCommand": "sudo service udev restart",
"postCreateCommand": "npm i --prefix worker && npm i --prefix ui"
}
12 changes: 6 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.pio
data/www/worker/*
tsc/node_modules
tsc/package-lock.json
tsc/dist
tsc/dist_packed
tsc/svgs/*
data/www/*
node_modules
worker/package-lock.json
worker/dist
worker/dist_packed
worker/svgs/*
.DS_Store
.vscode/c_cpp_properties.json
4 changes: 2 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
"configurations": [
{
"name": "Launch SVG Tester",
"program": "${workspaceFolder}/tsc/dist/tester.js",
"program": "${workspaceFolder}/worker/dist/tester.js",
"request": "launch",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"preLaunchTask": "tsc: build - tsc/tsconfig.json",
"preLaunchTask": "worker: build - worker/tsconfig.json",
"env": {
"server": "true"
}
Expand Down
4 changes: 2 additions & 2 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
"tasks": [
{
"type": "typescript",
"tsconfig": "tsc/tsconfig.json",
"tsconfig": "worker/tsconfig.json",
"problemMatcher": [
"$tsc"
],
"group": "build",
"label": "tsc: build - tsc/tsconfig.json"
"label": "worker: build - worker/tsconfig.json"
}
]
}
24 changes: 20 additions & 4 deletions build.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
import gzip
import os
import shutil
Import("env")

print("Transpiling TS code")
env.Execute("rm data/www/worker/* || true")
print("Transpiling TS worker code")
env.Execute("rm -rf data/www || true")
currentPath = os.getcwd()

os.chdir('./tsc')
os.chdir('./worker')
env.Execute("npm run build")
if not os.path.exists("../data/www/worker/"):
os.makedirs("../data/www/worker/")
env.Execute("cp dist_packed/main.js ../data/www/worker/worker.js")
os.chdir(currentPath)
os.chdir(currentPath)

print("Building React UI")
os.chdir('./ui')
env.Execute("npm run build")
os.chdir(currentPath)

print("Gzip compressing static assets")
for dirpath, _, filenames in os.walk("data/www"):
for filename in filenames:
src = os.path.join(dirpath, filename)
dst = src + ".gz"
with open(src, "rb") as f_in, gzip.open(dst, "wb", compresslevel=9) as f_out:
shutil.copyfileobj(f_in, f_out)
os.remove(src)
38 changes: 0 additions & 38 deletions data/www/client.js

This file was deleted.

Loading