Deploy web Studio / deploy (push) Successful in 3m46s
Measured with the new tools/bench_web.py on the web Studio's house demo, CPU slowed 6x:
- Idle: running CSS animations repainted the whole drawing every frame (99% of the main
thread in a window). Animations now step on about ten times a second by default
("light", 5% idle); the new toolbar button switches light / smooth / off and the browser
remembers it; [build] animation sets the default for built pages; view.animation().
Pan and zoom gestures pause them. Status LEDs pause off-screen and with the rest now.
- Pan 28 -> 10 ms, zoom 69 -> 11 ms per step: gestures move the drawing as one compositor
layer (transform) and set the viewBox once they end; --iso-k is set on the tags group
only and only when it changes; the stage box is read once per frame.
- Hover 22 -> 15 ms per move: the tooltip is placed once per frame on its own layer and
measured only when its text changes; the Studio's x/y readout updates ten times a second
in a contained box; hover work in the Studio runs once per frame.
- Long object lists skip layout of rows out of sight (content-visibility).
- WASM built with opt-level 3: engine render 11.7 -> 9.4 ms for 10% more download.
Checks: Studio 102/102 (animation modes, pan as a layer, contained readout), web 87/87.
49 lines
1.3 KiB
TOML
49 lines
1.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/isokit-core",
|
|
"crates/isokit-script",
|
|
"crates/isokit-theme",
|
|
"crates/isokit-project",
|
|
"crates/isokit-cli",
|
|
"crates/isokit-wasm",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
authors = ["buildfor.life"]
|
|
repository = "https://git.b4l.co.th/B4L/isokit"
|
|
|
|
[workspace.dependencies]
|
|
isokit-core = { path = "crates/isokit-core" }
|
|
isokit-script = { path = "crates/isokit-script" }
|
|
isokit-theme = { path = "crates/isokit-theme" }
|
|
isokit-project = { path = "crates/isokit-project" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
toml = { version = "1", features = ["preserve_order"] }
|
|
rhai = { version = "1.27", default-features = true }
|
|
tiny_http = "0.12"
|
|
# the Studio's agent window reaches the language model through `isokit studio`
|
|
ureq = "3"
|
|
clap = { version = "4", features = ["derive"] }
|
|
anyhow = "1"
|
|
web-time = "1"
|
|
# keep in step with the wasm-bindgen CLI (tools/build_web.py checks)
|
|
wasm-bindgen = "=0.2.129"
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 4
|
|
|
|
# the web Studio's engine (tools/build_web.py): fast over small (opt-level 3 renders
|
|
# about a fifth quicker than "s" for a tenth more download, 0.9 MB gzipped)
|
|
[profile.web]
|
|
inherits = "release"
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|