Repository navigation
Releases: gmrdad82/manfred
Release list
Manfred 0.19.0
The first public release of Manfred, a lighter Blender built on pfx: scenes as TOML recipes, GLB headless, a live window, path-traced stills, and all of it plain data. Earlier versions were developed privately and their tags are not in this repository, so apps pin v0.19.0 or later. These notes cover what changed since 0.18.0, the last private release.
Install the manfred tool with cargo install --locked --git https://github.com/gmrdad82/manfred --tag v0.19.0 manfred, and link the library from an app's build binary by the same tag, manfred = { git = "https://github.com/gmrdad82/manfred", tag = "v0.19.0" }. Building needs Rust 1.97 or newer, pkg-config and the Wayland client library; running needs a Vulkan GPU, and the window needs Wayland. The README covers the rest.
What's new
- Open source under MIT. LICENSE is the MIT text. NOTICE names where every picture, mark, font and test file comes from and what covers it. TRADEMARKS.md keeps the Manfred and PITO names and logos reserved. The repository also has a code of conduct and a security policy that asks for private reports.
- The window films itself.
manfred gui [<recipe>|<folder>] --clip <dir> --tape <file>plays a tape of clicks, drags, keys, typing and waits on the offscreen window, frame by frame, into an x264 master, a poster PNG and a JSON manifest, with--size WxH,--fps 30|60|120,--poster first|last|<seconds>and--start. Between frames it waits for every build, pick and render the window started, so the same tape gives the same master byte for byte. It plays on a copy of the folder, so a tape's edits never reach the original. It needs ffmpeg on thePATH. The tour at the top of the README isshowcase/tour.tape(docs/editing.md, "Clips of the window"). - Command-line errors follow clap's form. A line
manfredcan't parse gets clap's short error on stderr, with oneUsage:line, the--helphint and exit code 2, coloured in a terminal and plain otherwise. A baremanfredprints that error rather than the help. The whole help prints for--help,-handhelp, andmanfred help <command>prints one command's. Values and flags that only work together are checked before anything starts. A recipe, camera or file refused after that is one line on stderr,manfred <command>: …, with exit code 1. - Every dependency comes from a public source over https. The pfx crates, the editor crates
pfx-editor-styleandpfx-editor-shellincluded, come from pfx'sv0.25.0tag, and pfx-scene (the scene format) and pfx-report (the reporting hook) from theirv0.1.0tags. The lock holds one copy of each, and a clean build fetches nothing over ssh. - Scenes are written through pfx-scene.
[output] scenewrites scene format 1 through pfx-scene's types, and the window opens.scene.tomlfiles through the same crate. The files Manfred writes are unchanged. - Crash reports and job progress go through pfx-report. It is a small hook crate whose every call does nothing. A build from this repository sends no crash reports, job progress or heartbeat, and
manfred --report-testsays so and exits 1. A build that wants them patches in a reporter with the same API. Manfred's library crates never link it. - A public gate.
bin/gate --publicruns ShellCheck,cargo fmt --check, clippy with-D warningsand every test that needs no GPU, a licence check included: every dependency must be under an MIT-compatible licence. CI runs it on Rust 1.97.1. Tests that need a GPU are ignored by default; run them withcargo test -- --ignored.
Fixes
- A recipe opened from a folder's picker saves its edits.
Notes for callers
- Gone: the root package's
jobsandreportfeatures. Link the library by its tag;default-features = falseis no longer needed. - Behaviour change: a bare
manfred, and a line it can't parse, exit 2 with clap's error instead of printing the help or amanfred <command>: …line. A refusal after the parse keeps its one-line shape and exit 1. - Behaviour change: a host
Commandinmanfred::cli::Hostgets the rest of the line as given and parses its own arguments. Itsusageis that command's line inmanfred --help, and the host's ownusageis text the help ends with (docs/apps.md, "Commands"). - GLBs: a GLB's generator reads
manfred 0.19.0, so a build differs from 0.18.0's in that string alone. The scene, material and proxies files are byte for byte the same.