Chris Tsang
660dc4ff93
Remove the 0.6.x cmdapp crate
...
Superseded by crates/vtracer (framework) + crates/vtracer-cli. Verified the
new pipeline reproduces cmdapp's geometry and colors byte-for-byte (PNG always;
JPEG once the image-crate decoder is held constant), so the old crate is
retired. Drop its now-stale workspace exclude entry. Git history preserves it.
2026-07-23 23:08:04 +01:00
Chris Tsang
e46c971845
Rewrite into a vectorization framework (pillars 1–4)
...
Replace the 0.6.x single-pipeline crate with a stage-based framework, per
docs/design/. Implements Motivation pillars 1–4 (frontend, curve fitting,
color fitting, optimizer); mosaic (5) and bindings are deferred.
Workspace:
- crates/vtracer — the framework library (wasm-safe, no I/O)
- crates/vtracer-cli — thin CLI wrapper (clap 4 + image I/O)
- cmdapp/ and webapp/ excluded from the workspace (git-preserved)
Stages behind object-safe traits, composed by a Pipeline driver:
- Frontend: ColorClusterFrontend (+ transparency keying), BinaryFrontend
- CurveFitter: Pixel / Polygon / Spline (region tracing via visioncortex)
- ColorFitter: Identity, FixedPalette (OKLab-nearest), AutoQuantize
(area-weighted median cut), MergeAdjacent
- OptimizerPass: QuantizePass, SimplifyPass
- SvgWriter: relative/absolute shortest encoding, H/V/S shorthands,
compact number formatting, <g fill> grouping
visioncortex is a path dependency on the local 0.9.0 checkout.
Verified: 14 unit/integration tests pass; framework builds for
wasm32-unknown-unknown; CLI output renders faithfully via rsvg.
2026-07-23 22:27:24 +01:00
Chris Tsang
913d0ac7e0
New design
2026-07-23 18:11:19 +01:00
Chris Tsang
fd9cdb08e6
missing artifacts
Rust / build (push) Has been cancelled
0.6.15
2026-03-23 15:30:48 +00:00
Chris Tsang
3b2991be84
0.6.12
0.6.12
2026-02-04 12:21:42 +00:00
Chris Tsang
f24ea56a52
use Trusted Publisher
2026-02-04 11:47:44 +00:00
Chris Tsang
592bee6c5c
Regenerate python workflow
2026-02-04 10:11:32 +00:00
Chris Tsang
3ebc358b48
Bump CI
2026-01-30 14:35:48 +00:00
Chris Tsang
3a24c2f755
0.6.6
2026-01-28 18:21:44 +00:00
Chris Tsang
8acb6bd911
bump fastrand
Rust / build (push) Has been cancelled
2025-10-17 22:02:50 +01:00
Chris Tsang
efa4351b2c
Update README.md
2024-09-27 10:43:47 +01:00
Chris Tsang
a46292b5ed
Update README.md
2024-09-27 10:43:02 +01:00
Chris Tsang
8889cbc7ea
Tweaks
Rust / build (push) Has been cancelled
2024-09-26 12:59:45 +01:00
Wil Carmon
6b379a02ef
Update svg.rs ( #92 )
2024-09-26 12:58:43 +01:00
Wil Carmon
2635d5b874
Update config.rs ( #91 )
...
added #[derive(Clone, Debug)]
2024-09-26 12:58:30 +01:00
Chris Tsang
f6cf3e8705
Refactor
webapp.2024.5
2024-05-30 10:04:23 +01:00
Chris Tsang
36b16de17a
Key transparent image in webapp
2024-05-29 15:10:11 +01:00
Chris Tsang
7887c1ebf8
Update readme
2024-05-02 23:57:13 +01:00
Chris Tsang
6fdfec8610
python 0.6.11
0.6.5
2024-05-02 22:58:11 +01:00
York
1aff9a300a
Add support for conversion from python bytes ( #79 )
...
* Allow conversion from python bytes
* Update function name
* Add convert_pixels_to_svg python function
* Update README.md
* Update README.md
2024-05-02 22:24:56 +01:00
Chris Tsang
ac0a89e08a
README
2024-04-20 16:24:41 +01:00
Chris Tsang
b09f71a2b5
LICENSE
2024-04-20 16:21:36 +01:00
Chris Tsang
e4897dfe99
README
2024-04-20 16:16:57 +01:00
Chris Tsang
4544ca740d
README
2024-04-20 16:14:21 +01:00
Chris Tsang
3d92586e33
Update CI script
2024-04-20 15:52:58 +01:00
Chris Tsang
725adf5364
Update README.md
0.6.4
2024-03-30 14:46:52 +00:00
Chris Tsang
05f82c7bb5
Test
2024-03-29 19:26:28 +00:00
Chris Tsang
b7ac336b6d
Add release script
2024-03-29 19:06:29 +00:00
Chris Tsang
c03a8ffced
0.6.4
2024-03-29 19:01:16 +00:00
Chris Tsang
3223ba56ec
Upgrade dependency
2024-03-29 18:59:55 +00:00
Chris Tsang
ddb47e1ad4
Revert "Experiment with idealizing small circles"
...
This reverts commit c3012c6aef .
2024-03-29 18:58:06 +00:00
Chris Tsang
177797108d
Changelog
2024-03-29 18:57:57 +00:00
Chris Tsang
370083f818
0.6.3
2024-03-29 18:57:57 +00:00
Chris Tsang
c3012c6aef
Experiment with idealizing small circles
2024-03-29 18:57:57 +00:00
Chris Tsang
2774fc06c9
Reduce default path precision
0.6.3
2023-11-12 23:05:45 +00:00
Chris Tsang
fa7d021055
Readme
2023-11-12 20:39:25 +00:00
Chris Tsang
cc43924601
cargo fmt
2023-11-12 20:38:01 +00:00
Chris Tsang
9dbbd100df
Bump
2023-11-12 20:36:35 +00:00
linkmauve
37a2570f49
Add a function to do in-memory conversion ( #59 )
...
* Move path handling out of conversion functions
This lets us decouple file reading/writing from the actual conversion.
* Move Config::from_args() to main.rs
* Remove path support from Config
Instead the input_path and output_path have to be passed to
convert_image_to_svg() manually.
* Add a simplified convert() function
This lets the user convert an image from memory, without encoding it to
PNG, writing it to a file, then reopening this file and decoding it
using the image crate.
It also allows the user to not write a SVG directly to a file.
2023-11-13 04:28:05 +08:00
Chris Tsang
b2cd1a9524
Expose as rlib too
2023-10-24 08:43:37 +01:00
Chris Tsang
ac93bd4a51
Edit
2023-09-24 11:08:30 +01:00
Chris Tsang
e62f071b34
Edit
2023-09-23 11:52:36 +01:00
Chris Tsang
884092a5b9
Edit
2023-09-23 11:49:54 +01:00
Chris Tsang
5f5a6c6648
README
2023-09-23 11:45:36 +01:00
Chris Tsang
022018beb2
0.6.1
0.6.1
2023-09-23 11:12:34 +01:00
Chris Tsang
cc39c8c5ca
README
2023-09-23 11:06:18 +01:00
Evan Jones
fa1ab68ef3
Python Bindings. Again. No, really! ( #55 )
...
* - Cargo.toml: add `crate-type = ["cdylib"] to [lib]; lacking this is what was causing the executable to be put in wheels
- pyproject.toml: add "python-binding" to features for conditional compilation
- main.rs: `cargo build` was failing for the vtracer executable; I think the previous import scheme had an implicit dependency on the library being built and called 'vtracer'. The other way to do this would have been to add an explicit dependency to the [[bin]], but making explicit imports here solves things directly
* re-enable linux builds; features are defined in the pyproject.toml now rather than in the workflow arguments
* And publish Linux, too!
2023-09-23 02:10:04 +08:00
Chris Tsang
b04738fd18
well
2023-09-16 19:38:07 +01:00
Chris Tsang
1080c562ce
Try again
0.6.0
2023-09-16 19:27:30 +01:00
Chris Tsang
e44e750721
try again
2023-09-16 19:09:20 +01:00