Getting started#
Choose a host before installing anything. The browser is the easiest place to
try Python; native Rust or CPython is useful for a normal application or an
export workflow. Registry names are not finalized: do not install an unrelated
package named noon from a public registry.
Browser#
Open an example below, then press Run in the preview. The preview executes the same Rust/WASM and Pyodide path as the full playground. Open full editor lets you change the source. The first run downloads runtime resources, so it requires network access and can take longer than subsequent runs.
Preview activation is explicit. Reading a guide does not start WASM or Python. Only one documentation preview is open at a time; closing it, opening another, or hiding the tab retires its embedded browsing context. Reopening starts fresh.
Native Python#
For development from a checkout, use CPython 3.11+ and the pinned Rust toolchain:
git clone https://github.com/yongkyuns/noon.git
cd noon
python3 scripts/build-native-python.py --profile dev
PYTHONPATH=build/python python3 -m noon_native web/python/examples/first_lesson.py
These commands use a POSIX shell. Source builds also need the platform's native C and graphics build dependencies. A native viewer requires a compatible graphics driver. For wheel installation, Windows shell instructions, host limitations and headless modes, read native Python details.
Continue with the Python walkthrough.
Native Rust#
From the same checkout, run the ordinary synchronous lesson:
cargo run -p noon-native --example first_lesson
Rust uses the shared engine directly; this command does not need Python, Pyodide, or a browser. The repository toolchain and example dependencies are selected by Cargo. The Rust walkthrough explains the lesson and its native host.
Browser Rust and local web development#
Build the repository's existing browser package, then serve its web directory:
bash scripts/build-web-demo.sh
python3 -m http.server --directory web 8080
Open http://localhost:8080. This is the development playground; the published
project website is staged separately. Rust source is compiled into WASM. Editing
Rust code requires rebuilding; the Python editor does not interpret Rust.
Browser integration describes direct Rust/WASM examples and
the distinct optional Pyodide worker path.
Check your first run#
A successful run shows actual rendered output, not just a loaded editor. Inspect the status and diagnostics when a scene fails. Start with the unchanged first lesson before adding effects, assets, callbacks or external dependencies. Troubleshooting covers the common boundaries.