Skip to content

Kinema v0.3.0

Choose a tag to compare

@ebgenius ebgenius released this 03 Sep 04:29
· 28 commits to main since this release
16f08b4

Kinema no longer downloads anything, starts no threads, and writes nothing to your environment.

The robot catalogue stays, and gets better at the part it was always best at — telling you which of 186 robots exists, where it lives and which file to open — but fetching one is now your git clone, not a hidden network call from an add-on. The one visible cost is that importing a robot now blocks Blender while it works.

Requires Blender 5.2 LTS or newer. Every dependency ships inside the extension zip; nothing is installed at runtime.

Download

Platform File Size
Windows kinema-0.3.0-windows_x64.zip 116.5 MB
Linux kinema-0.3.0-linux_x64.zip 136.4 MB
macOS (Apple silicon) kinema-0.3.0-macos_arm64.zip 99.7 MB

Install with Edit → Preferences → Add-ons → Install from Disk.

Changed

  • The catalogue is offline. Import from Catalog is now Browse Robot Catalog: search 186 robots by name, maker or category, pick one, and Kinema puts a git clone command on your clipboard along with the pinned revision and the path of the description file inside that repository. Load the file with Import URDF File… as usual. mujoco_menagerie alone is 2466 files, so knowing which one to open is the part that actually saves you time.
  • Curated entries. The catalogue can mark a robot as a duplicate, broken or only partly supported, with a note and a pointer to the entry to use instead. Marked entries are hidden until you tick Show all variants, so searching "UR5e" stops returning three of them.
  • Importing a robot blocks. It used to parse on a background thread and build the rig across timer ticks, so the viewport stayed live and Esc could cancel. Extensions may not start threads, and that machinery bought responsiveness and nothing else — so an import is now a wait cursor and a pause: a second or two for an arm, longer for a humanoid, where the time goes on one Blender mesh-importer call per visual.

Fixed

  • Importing a xacro failed on Windows, always, with WinError 32. The renderer handed the parser a temporary file it was still holding open, which Windows will not allow a second handle on. 38 of the catalogue's robots ship only a xacro, so this closed off all of them. Now covered by tests.
  • Kinema silenced every other add-on's logging. Muting the solver's per-solve output called loguru's logger.remove(), which drops every sink in the process — including those belonging to other add-ons, since loguru's logger is a process-wide singleton. It now disables just its own vendored packages.

Removed

  • The network permission. The extension no longer declares or uses one.
  • Every thread, and with them the Preload Solver in Background preference. The solver stack is imported on first use instead, costing 2–5 s once per session at the first solve.
  • Every environment variable Kinema set: JAX_PLATFORMS, JAX_ENABLE_X64 and ROBOT_DESCRIPTIONS_CACHE. 64-bit mode moved to jax.config.update after the import; the CPU pin turned out to have nothing to pin, since only the CPU jaxlib wheels are bundled; and the cache variable went with the Robot Cache preference, also gone.
  • Ten wheels. robot-descriptions, GitPython, gitdb and smmap went with the downloading catalogue. packaging, setuptools, docutils, pyparsing, tqdm and typeguard satisfied nothing at all — nothing in Kinema or the vendored solver imports them, and nothing requires them. The payload is 38 wheels, down from 48 — 28 per platform, since five are compiled once each for Windows, Linux and macOS.

Upgrading

Rigs built by 0.2.0 or earlier from the downloading catalogue will report that their description can no longer be reloaded; re-import it from disk to restore the PyRoki solver. Rigs imported from a local file are unaffected.

Full changelog: v0.2.0...v0.3.0