Spacecurve
A library for drawing space-filling curves like the Hilbert Curve.
Install / Use
/learn @cortesi/SpacecurveREADME
A space-filling curve is a continuous surjection $f:[0,1]\to[0,1]^d$ for $d\ge 2$. In discrete spaces, this is an ordering of grid cells that visits every cell; some orderings preserve adjacency (e.g., Hilbert), while others trade adjacency for simplicity (e.g., Morton/Z-order).
This project contains implementations of various space-filling curves, plus tools for visualising and working with them.
spacecurve
A Rust library for generating and working with space-filling curves.
<!-- snips: crates/spacecurve/examples/hilbert.rs#example -->// 2D Hilbert curve on an 8x8 grid (order 3)
let curve = spacecurve::curve_from_name("hilbert", 2, 8)?;
println!(
"{}D Hilbert length: {} cells",
curve.dimensions(),
curve.length()
);
let index = 10;
let point = curve.point(index);
println!("Point at index {index}: {:?}", point);
let round_trip = curve.index(&point);
println!("Index for {:?}: {round_trip}", point);
assert_eq!(round_trip, index);
scurve
A command-line tool and GUI for generating images of space-filling curves.
Install with:
cargo install scurve
playground
A GUI for visualising space-filling curves and their properties, written in Rust with egui and compiled to WebAssembly.
<p align="center"> <a href="https://corte.si/spacecurve/index.html"> <img src="https://raw.githubusercontent.com/cortesi/spacecurve/refs/heads/master/assets/3d.png" alt="Space-filling curve viewer" /> </a> </p>related blog posts
Development on spacecurve (and its ancestors) is usually spurred along by posts on my blog. Some of spacecurve's features are documented and illustrated in the following posts:
- Portrait of the Hilbert Curve
- Generating colour maps with space-filling curves
- Hilbert Curve + Sorting Algorithms + Procrastination = ?
community
Want to contribute? Have ideas or feature requests? Come tell me about it on Discord.
Related Skills
node-connect
335.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
335.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.7kCommit, push, and open a PR
