Releases: ivg-design/bbsolver
v1.0.1 — Verifier bug fix for variable-topology shape_flat
Verifier-side bug fix. No solver numeric changes — running v1.0.1 solve against the same bbsm.json produces a bit-identical bbky.json (same max_err to six decimal places, same key counts, same per-key vertex counts). The fix only relaxes a strict per-key dimension check in the canonical bbsolver verify <bbky> <bbsm> CLI that had rejected the six variable-topology shape_flat rows of the published paper corpus (noodle and blob fixtures).
What changed
The verifier now applies a sample-aware rule on units_label == \"shape_flat\" && shape_variable_topology == true:
- each VT key's
v[]must be length ≥ 2 v[1](the encoded vertex count) must be a finite non-negative integer-ish valuev.size() == 2 + 6 * round(v[1])vertex_count <= shape_max_vertex_countwhen the max is known
Malformed VT keys are reported under the new invalid_shape_flat_key_dimensions reason code with a malformed_keys array carrying per-key diagnostics. The bbsm side is cross-checked via the new invalid_shape_flat_sample_metadata code. Non-shape and fixed-topology paths keep the existing key_value_dimension_mismatch reason code unchanged.
The main ReadKeyBundleJson parser (used by solve, apply, dump, and any other call site) is byte-for-byte unchanged. The relaxed gate is scoped to a new ReadKeyBundleJsonForVerify entry point used only by the verify CLI.
Test coverage
- 7 new unit cases in
tests/solver_unit/test_verify_dump_commands.cpp - New integration test
test_verify_paper_corpus_integrationwalkingdata/paper_corpus/req-*/and asserting all 16 shippedbbky.jsonbundles reach the sample-aware verifier without schema rejection - ctest: 117 / 117 passing on macOS arm64 + x86_64
Independent validation
Codex orchestrator dispatched Codexolog to run the release-gating black-box validation matrix. Verdict: GREEN, no blockers under any of the four decision gates:
- No schema rejection on valid variable-topology shape_flat
- No relaxation of fixed-topology or non-shape mismatch detection
- No relaxation of the solve/apply main parser
shape_flatwithoutshape_variable_topologycarrying per-key varying lengths is still rejected via the strict gate (confirms the gate requires BOTH conditions, not justunits_label)
v1.0.0 compatibility
The v1.0.0 release remains available unchanged for byte-level reproduction of the original solver outputs. v1.0.1 is the recommended binary for reproducing verify.json from scratch.
SHA-256 manifest
c28ce4c9530f298b094a7ec35305ca39dc35d25f9adf2014c7f30cb69deb26ad bbsolver-v1.0.1-macos-arm64.tar.gz
6e221df339dd89366ad38ca3a29dbf4501550d3be73d9bb863cd2eb6f3167d5e bbsolver-v1.0.1-macos-x86_64.tar.gz
776f0f8278aa76fd0fdcb3f45bc0ce1d62d68ba8eb31b833f8ced1964c067f08 bbsolver-v1.0.1-windows-arm64.zip
daa6448a888b18820b18971d4465c4c1668414bc2f75ad6f220a458bc7d5e24c bbsolver-v1.0.1-windows-x64.zip
See CHANGELOG.md for the full diff and the paper §8.1 for the reproducibility manifest.
bbsolver v1.0.0
bbsolver v1.0.0
First standalone release of bbsolver, a C++ spatiotemporal optimization
engine for animation data.
Highlights
- Reduces dense sampled animation to sparse keyframes within an explicit error
budget. - Supports scalar, vector, Position-style spatial properties, stable
shape_flatpaths, and variable-topology path replacement flows. - Includes motion path smoothing for Position-style motion paths, with options
for preserving keyed frames and sharp turns. - Preserves host animation semantics where applicable: hold, linear, Bezier,
temporal ease, spatial tangents, and roving flags. - Ships a standalone After Effects ScriptUI test harness plus JSON shim that
demonstrates sampling, expression bake-and-disable, optional parented 2-D
Position flatten/unparent, CLI solve/verify, and key writeback.
Supported Integration Surface
- CLI commands:
solve,verify,dump,--version, and--help. - JSON IO: strict
SampleBundleinput andKeyBundleoutput with
_schema,schema_version: 1, and dimension-checked value arrays. - CMake package:
find_package(bbsolver CONFIG)with exported
bbsolver::bbsolverandbbsolver::coretargets. - FlatBuffers schemas are included as protocol/design references; v1.0.0 CLI IO
is JSON.
Build And Use
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/bbsolver solve \
examples/json/minimal_scalar.bbsm.json \
/tmp/minimal_scalar.bbky.json
./build/bbsolver verify \
/tmp/minimal_scalar.bbky.json \
examples/json/minimal_scalar.bbsm.jsonWindows PowerShell:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j
.\build\Release\bbsolver.exe solve `
examples\json\minimal_scalar.bbsm.json `
$env:TEMP\minimal_scalar.bbky.json
.\build\Release\bbsolver.exe verify `
$env:TEMP\minimal_scalar.bbky.json `
examples\json\minimal_scalar.bbsm.jsonOffline/reproducible builds can use the bundled dependency archives:
cmake -S . -B build -DBBSOLVER_FORCE_THIRD_PARTY_ARCHIVES=ON
cmake --build build -jValidation Evidence
Validated public commit:
5e2954573476d31d06f27538676a012bbb759e13.
Public CI:
- Push run
26384591701:
quick-linux,package-macos, andpackage-windowspassed. - Manual release-validation run
26385148293:
quick-linux,package-macos,package-windows, and
release-validationpassed. - Tag run
26387781951
forv1.0.0:quick-linux,package-macos,package-windows, and
release-validationpassed.
The release-validation job completed the standalone validator, installed
package smoke test, JSON example solve/verify/dump checks, negative schema
checks, install hygiene checks, and clangd sweep.
Source Traceability
This public release was synced from the source repository with the following
metadata:
Source-Repository: https://github.com/ivg-design/bakerBoy.gitSource-Ref: HEADSource-Commit: 460c84aaa8018d88b2120cfe37ad12a2e5b1e3bbSource-Path: solverSource-Tree: 99bf3f2b864ac852a364b745fca46956f9a3459e
Documentation
README.md: package overview and quickstart.docs/QUICKSTART.md: five-minute build, solve, and verify path.docs/SOLVER_CLI.md: CLI commands, flags, exit codes, progress,
cancellation, and diagnostics.docs/API_REFERENCE.md: JSON SampleBundle and KeyBundle contracts.docs/PACKAGING.md: CMake install/export and package-consumer behavior.docs/AE_SCRIPTUI_HARNESS.md: After Effects ScriptUI harness integration.docs/VALIDATION_WORKFLOWS.md: local and release validation workflows.