个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A 2D vector rigging and animation engine in Rust: bones, IK, skinning, deformers, state machines, CLI, browser studio.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Languages: English · Română · Français · Italiano · Español · Português · Deutsch · Magyar
A 2D vector rigging and animation engine in Rust: bones, IK, skinning, deformers, a state machine runtime, a command-line toolbox, a browser studio and embeddable libraries, in one workspace.
What it makes: the built-in walking person, exported with osatura demo-person and osatura export (the whole project is one JSON file). Try it in two minutes: docs/GETTING_STARTED.md.
Code signing policy · Privacy · Download
OSATURA lets you build a character or a scene from vector shapes and images, rig it with bones and constraints, animate it with keys, clips and physics, and send it out as GIF, video, Lottie, glTF, a self-contained HTML player or an interactive runtime. It is made of small, deterministic pieces: the same project and the same seed give the same pixels, every tool reads and writes a documented JSON project, and every command works from a terminal, so animation can be scripted, reviewed, diffed and tested like source code.
Principles that shape the project:
cargo deny.Name: the project was called ARMATURA until 24 Oct 2026 and was renamed OSATURA after a trademark search (docs/LIMITATIONS.md L-78). The repository and the site address were renamed too (old repository links redirect).
Alpha. Latest published pre-release:
v0.1.0-alpha.4; the next one isv0.1.0-alpha.5. The executables for Windows x86-64, macOS arm64 and Linux x86-64 and the WebAssembly module are built by GitHub Actions and attached to a draft pre-release on https://github.com/chiuta/osatura/releases (a draft is visible only to the owner until it is published by hand). All crates are still version0.1.0; "v0.5 / v0.6 / v0.7" are feature levels in the history, not release numbers (CHANGELOG.md).
Verified Not verified Local (Linux x86-64, 24 Oct 2026): 1343 tests of cargo test --workspace --exclude osatura-gpu --exclude osatura-guiplus 19 doc-tests pass (the GPU crate needs an adapter and the window crate a desktop; before this the count including the GPU crate was 1368). On GitHub Actions (24 Oct 2026, toolchain 1.97.0): the test suite andclippy -D warningspass on Linux, macOS (arm64) and Windows;cargo denyandreuse lintpass; the WebAssembly module builds forwasm32-unknown-unknownand the wrapper's test passes against the real module under Node 20; the release binaries pass a smoke test (--version,demo,check,render) andosatura-studio --selftestruns on Windows and macOS. Five headless-Chromium smoke tests of the studio pass locally (CI does not run them); the CLI, the Rust facade and the C ABI (also under ASan/UBSan) were run with the examples in the docsNo person has used the executables on a real Windows or macOS desktop: the Windows double-click launcher and the osatura-studiowindow app (WebView2 / WKWebView) were only compiled and self-tested in CI; the binaries are not code-signed (SmartScreen "Unknown publisher", macOS Gatekeeper); the Linux binary was built on an Ubuntu runner only; the WebAssembly module was run only in headless Chromium (Firefox and Safari were not tried; about 73 ms per 640x480 frame without a GPU); the studio was never used by a person in production, nor in a browser other than Chromium; no real GPU (only a software adapter), webcam, photograph or motion-capture file was ever used; no security audit, lawyer review or patent search
osatura studio demo.json --port 8080, see Quick start) or, when a release exists, with the osatura-web.tar.gz archive; the WebAssembly demo page has so far only been loaded in headless Chromium without the .wasm file (docs/WASM.md), so do not expect a verified in-browser rendering.docs/img/walk.gif: the built-in walking person, real output of osatura export (the image at the top of this page); docs/img/walk-cycle.png: the same cycle as a sheet.docs/examples/pip.svg and docs/examples/pip-rig.rhai: a drawing and the script that rigs it and gives it a walk cycle, used step by step in docs/TUTORIAL_SVG.md (result: docs/img/tutorial-svg-walk.png).osatura demo (rig demo, 48 frames) and osatura demo-fx (liquid, booleans, particles) generate project files you can render and export yourself.OSATURA has far more features than one person can validate. This table says where the author puts the effort first. It is an intention, not a quality guarantee: no animator other than the author has used any of it yet (docs/LIMITATIONS.md).
| Tier | What | What it means |
|---|---|---|
| Core | Project format, bones, IK, skinning, keys and easing, rendering, export to GIF, PNG, SVG, Lottie and HTML, the osatura command line, the studio basics | Fixed first, covered by the most tests, start here (tutorial) |
| Supported | Deformers, physics, state machines, SVG and OpenRaster import, the C library, the WebAssembly module | Works in tests; fewer eyes on it |
| Experimental | Mocap retargeting, lip-sync and speech, face detection, live input, collaboration, version control, size-targeted export, level of detail, GPU rendering | Expect rough edges and changes; do not build on it yet |
Prebuilt archives, once the owner has published the draft release, are on the project's Releases page. Code signing policy · Privacy (the programs send nothing over the network unless you ask them to) · Uninstall · Verify a download
| Archive | Contents |
|---|---|
osatura-windows-x86_64.zip | osatura.exe (command line + studio server), osatura-studio.exe (window app), C library and header, licences, third-party notices |
osatura-macos-arm64.tar.gz | osatura, osatura-studio (Apple-silicon only), C library and header, licences, notices |
osatura-linux-x86_64.tar.gz | osatura, C library and header, licences, notices (no window app: use osatura studio and a browser); needs glibc 2.35+ (Ubuntu 22.04+, Debian 12+, Fedora 36+) |
osatura-linux-x86_64-musl.tar.gz | static osatura (musl libc, no system libraries needed) for older distributions such as RHEL/Rocky/Alma 8 and 9, Debian 10 and 11, Ubuntu 20.04; no C library; about 5-50 % slower than the glibc build. Not in alpha.4: it starts with the next release |
osatura-web.tar.gz | osatura_wasm.wasm, osatura.js, demo index.html (run only in headless Chromium, see docs/WASM.md) |
SHA256SUMS.txt | check every download against it |
*.sigstore.json | Sigstore signature of each file (docs/VERIFY_DOWNLOADS.md) |
osatura.exe to create Documents\OSATURA\first-rig.json (the walking-person demo: head with ear, hands with fingers, feet with toes) and open the studio in your browser, or double-click osatura-studio.exe for a window of its own. Both programs are not Authenticode-signed yet (Code signing policy): choose More info then Run anyway in SmartScreen. Nothing is installed: to remove OSATURA delete the folder and the files in docs/UNINSTALL.md. See docs/GETTING_STARTED.md.osatura --version, /source).Details and exact options: docs/CLI_REFERENCE.md; what is partial or missing: docs/LIMITATIONS.md.
export-fit). Import: SVG, OpenRaster, Lottie, BVH, PNG/GIF/APNG sequences.check, lint, semantic diff, pose fuzzing with heat maps, animation CI with perceptual diff and golden frames (docs/CI.md), version control with semantic merge (vcs), safety checks for flashing and motion.Requirements: a recent stable Rust toolchain (or a prebuilt archive from the Download section: skip the cargo build line and use the unpacked osatura). ffmpeg is needed only for MP4/WebM export and for mp3/ogg audio; it is never bundled. Every command below was run for this README (debug build, Linux). Release builds (cargo build --release) are much faster for rendering and are used the same way with target/release.
cargo build -p osatura-cli # builds target/debug/osatura
export PATH="$PWD/target/debug:$PATH" # so that `osatura` is found
osatura --version # version, licence, source offer, support links
osatura demo demo.json # write the built-in rig demo (640x480, 48 frames)
osatura check demo.json # validate: ok: 'OSATURA demo' 640x480 @ 24 fps, 48 frames, 6 bones...
osatura lint demo.json # static rig/animation checks: 0 finding(s), 0 error(s)
osatura render demo.json 12 frame12.png --bones # one frame, with the skeleton overlay
osatura render demo.json 12 frame12.svg # the same frame as vector output
osatura frames demo.json frames_out --png # every frame as a PNG
osatura export demo.json demo.gif # also .html (player), .json (Lottie), .lottie, .mp4 (ffmpeg)
osatura demo-fx fx.json # second demo: liquid, booleans, particles
osatura lipsync demo.json voice.wav mouth out.json # mouth shapes from a WAV file (switch layer "mouth")
osatura studio demo.json --port 8080 # browser editor at http://127.0.0.1:8080
osatura ci init demo.json && osatura ci run # animation CI: goldens + checks (about 40 s in a debug build)
voice.wav is any mono or stereo WAV file you provide. The studio listens on 127.0.0.1 only and refuses requests for other host names; to share it, read docs/SECURITY.md first.
Use the libraries:
cargo build -p osatura-capi # target/debug/libosatura_capi.so and .a
gcc -std=c99 -o smoke osatura-capi/tests/smoke.c -Ltarget/debug -losatura_capi
LD_LIBRARY_PATH=target/debug ./smoke demo.json # abi 1, 48 frames, 320x240, rc=0, checksum=...
The Rust facade is osatura_core::prelude (docs/API.md); more C and Python examples are in docs/C_ABI.md.
Tests (about 14 minutes in a debug build on a shared machine; see docs/DEVELOPMENT.md):
cargo test --workspace
cargo test --doc -p osatura-core
cargo test -p osatura-cli --test spdx_audit
| Path | Contents | Licence |
|---|---|---|
osatura-core/ | engine, formats, tools, stable facade api | MPL-2.0 |
osatura-cli/ | the osatura binary, studio and collaboration server, end-to-end and smoke tests | AGPL-3.0-or-later |
osatura-gui/ | osatura-studio, the studio in a native window (Windows and macOS; a stub on Linux) | AGPL-3.0-or-later |
osatura-capi/ | C ABI (osatura.h, shared and static library) | MPL-2.0 |
osatura-wasm/ | WebAssembly ABI, JavaScript wrapper, demo page (built in CI) | MPL-2.0 |
osatura-gpu/ | optional wgpu renderer (not a default member) | MPL-2.0 |
docs/ | documentation (CC-BY-4.0) and generated third-party files | CC-BY-4.0 |
.github/workflows/ | CI (ci.yml) and release builds (release.yml) | MPL-2.0 |
scripts/ | e2e.sh, licence-audit.sh | MPL-2.0 |
LICENSES/, REUSE.toml, deny.toml | licence texts, licence metadata, dependency policy | - |
ROADMAP.md, FEATURES.md, CLEANROOM.md, LICENSING.md, TRADEMARK.md, CONTRIBUTING.md, CHANGELOG.md | project documents | CC-BY-4.0 |
Start at docs/INDEX.md (all documents, audiences, reading paths).
| Page | For |
|---|---|
| docs/GETTING_STARTED.md | first project, render, export |
| docs/CLI_REFERENCE.md | every command and option |
| docs/STUDIO.md | the browser editor |
| docs/RIGGING_GUIDE.md | building rigs |
| docs/ANIMATION_GUIDE.md | animating, clips, physics, audio |
| docs/PROJECT_FORMAT.md | the JSON project format |
| docs/EXPORT_FORMATS.md | what each format carries and drops |
| docs/ARCHITECTURE.md | design and modules |
| docs/GLOSSARY.md | terms |
| docs/FAQ.md | common questions |
| docs/API.md | Rust facade 1.4 |
| docs/C_ABI.md |
osatura-core, osatura-capi, osatura-wasm, osatura-gpu and for scripts/: you may link them into your own program, open or closed; changes to those files must be published under the MPL.osatura-cli (the command line and the studio) and osatura-gui (the window around it). If you modify it and let others interact with it over a network, section 13 requires you to offer them your source: osatura studio --source-url URL publishes where it is; /source and osatura --version carry the offer.smartstring behind the optional scripting feature, and five (cssparser, cssparser-macros, dtoa-short, selectors, option-ext) that only the window app osatura-gui can pull in (docs/THIRD_PARTY.md). ffmpeg is never bundled.See COPYRIGHT, LICENSES/ and LICENSING.md. None of this is legal advice; a lawyer review is still outstanding.
Contributions are welcome under the licence of the part they change. Read CONTRIBUTING.md (every commit needs a Signed-off-by line, DCO 1.1), CLEANROOM.md (implement from public sources only; do not copy from proprietary or incompatibly licensed code) and docs/DEVELOPMENT.md (conventions, checklist for a new module, tests). Good first contributions: a fix from docs/LIMITATIONS.md, a real run of the WebAssembly checklist, a real-desktop test of the Windows / macOS executables, a real-GPU benchmark.
Security issues: do not open a public issue; follow docs/SECURITY.md section 10.
OSATURA is developed by Alexandru-Ionuț Chiuță (Alexio). If it is useful to you, you can support the work:
Maintainer contact (also printed by osatura --version): [email protected].
tiny-skia, serde, png, zip, rhai and wgpu.Read docs/LIMITATIONS.md (78 numbered limits with severity and workaround) before you depend on anything.
| C interface |
| docs/WASM.md | WebAssembly (built in CI, run in headless Chromium only) |
| docs/CI.md | animation CI |
| docs/DEVELOPMENT.md | build, test, conventions, release |
| docs/SECURITY.md | threat model and hardening |
| CODE_SIGNING_POLICY.md · PRIVACY.md · docs/UNINSTALL.md | code signing policy, privacy, uninstalling |
| docs/LIMITATIONS.md | known limits |
| docs/PATENT_NOTES.md, docs/THIRD_PARTY.md, docs/THIRD_PARTY_NOTICES.md | patents, dependency licences |
| CHANGELOG.md, ROADMAP.md, FEATURES.md | history, plan and detailed status, feature matrix |
| CLEANROOM.md, LICENSING.md, TRADEMARK.md, CONTRIBUTING.md | provenance, licences, name policy, contribution rules |