diff --git a/.changeset/arm-position-widget-switches.md b/.changeset/arm-position-widget-switches.md deleted file mode 100644 index 7f43df74d..000000000 --- a/.changeset/arm-position-widget-switches.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@viamrobotics/motion-tools": minor ---- - -Toggle independent arm position widgets with per-arm switches diff --git a/.changeset/dull-games-clean.md b/.changeset/dull-games-clean.md deleted file mode 100644 index 9ddb977fa..000000000 --- a/.changeset/dull-games-clean.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@viamrobotics/motion-tools": patch ---- - -Refactor frame editing for plugin extraction diff --git a/.changeset/fix-widget-panel-ux.md b/.changeset/fix-widget-panel-ux.md deleted file mode 100644 index b5401b409..000000000 --- a/.changeset/fix-widget-panel-ux.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@viamrobotics/motion-tools": patch ---- - -Migrate camera and arm position widgets to use FloatingPanel diff --git a/.changeset/flat-steaks-see.md b/.changeset/flat-steaks-see.md deleted file mode 100644 index aaf0d0e65..000000000 --- a/.changeset/flat-steaks-see.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Add individual switches for arm widgets, similar to cameras diff --git a/.changeset/gold-peas-beg.md b/.changeset/gold-peas-beg.md deleted file mode 100644 index ce95cd660..000000000 --- a/.changeset/gold-peas-beg.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@viamrobotics/motion-tools": patch ---- - -Fix tweakpane styling race condition diff --git a/.changeset/motion-plan-replayer-1a-parse.md b/.changeset/motion-plan-replayer-1a-parse.md deleted file mode 100644 index 7a50b097d..000000000 --- a/.changeset/motion-plan-replayer-1a-parse.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Add the motion plan JSON parser (`parsePlan`) for the Motion Plan Replayer: validates and normalizes plan JSON into a `ParsedPlan` (frames, parents, trajectory, goals). diff --git a/.changeset/motion-plan-replayer-1b-descriptors.md b/.changeset/motion-plan-replayer-1b-descriptors.md deleted file mode 100644 index bc220cf9d..000000000 --- a/.changeset/motion-plan-replayer-1b-descriptors.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Add frame-descriptor derivation for the Motion Plan Replayer: converts a `ParsedPlan` into static and jointed `FrameDescriptor`s (geometry, orientation conversion, joint-index mapping, end-effector reparenting). diff --git a/.changeset/motion-plan-replayer-1c-snapshots.md b/.changeset/motion-plan-replayer-1c-snapshots.md deleted file mode 100644 index 8483f6cad..000000000 --- a/.changeset/motion-plan-replayer-1c-snapshots.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Add per-step snapshot generation (`parsedPlanToSnapshots`) and the `PartOfPlan` ECS relation for the Motion Plan Replayer, turning frame descriptors into renderable snapshots grouped under a plan entity. diff --git a/.changeset/motion-plan-replayer-2-plugin.md b/.changeset/motion-plan-replayer-2-plugin.md deleted file mode 100644 index b1a695430..000000000 --- a/.changeset/motion-plan-replayer-2-plugin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Add the Motion Plan Replayer plugin shell: a dashboard-mounted floating panel that uploads plan JSON files, parses them into snapshots, and lists them with ready/error/no-trajectory status. Exposes an `extraSource` snippet receiving `addPlan` so an embedding app can inject its own plan source (e.g. a DB picker) without escaping the plugin's context. diff --git a/.changeset/motion-plan-replayer-3-rendering.md b/.changeset/motion-plan-replayer-3-rendering.md deleted file mode 100644 index e181b6957..000000000 --- a/.changeset/motion-plan-replayer-3-rendering.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Render Motion Plan Replayer plans in 3D and add the timeline scrubber. Selecting a plan spawns its snapshot entities under a plan entity, and a bottom scrubber (play/pause, step, seek) resolves each slider position to the corresponding snapshot via `reconcileSnapshotEntities`. Plan entities are tinted and torn down as a group through the `PartOfPlan` relation. diff --git a/.changeset/motion-plan-replayer-4-config.md b/.changeset/motion-plan-replayer-4-config.md deleted file mode 100644 index 9b06e4035..000000000 --- a/.changeset/motion-plan-replayer-4-config.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Add persistent per-frame display config to the Motion Plan Replayer. Per-frame color, opacity, visibility, and axes edits made via the scene Details panel and tree now persist across scrubbing instead of being reset each step. Also fixes the Details panel "show axes helper" toggle, which previously had no effect because the batched axes renderer never reacted to the trait being added or removed at runtime. diff --git a/.changeset/motion-plan-replayer-mesh-geometry.md b/.changeset/motion-plan-replayer-mesh-geometry.md deleted file mode 100644 index 66e6f26c0..000000000 --- a/.changeset/motion-plan-replayer-mesh-geometry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': patch ---- - -Render mesh geometry in the Motion Plan Replayer. diff --git a/.changeset/pink-friends-shine.md b/.changeset/pink-friends-shine.md deleted file mode 100644 index dffa1e720..000000000 --- a/.changeset/pink-friends-shine.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': minor ---- - -Motion plan replayer + docs diff --git a/.changeset/whole-snails-play.md b/.changeset/whole-snails-play.md deleted file mode 100644 index cf2a9fe0b..000000000 --- a/.changeset/whole-snails-play.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@viamrobotics/motion-tools': minor ---- - -Dedicated edit mode diff --git a/CHANGELOG.md b/CHANGELOG.md index 43ebdafe2..22f9a679c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # motion-tools +## 1.37.0 + +### Minor Changes + +- f563895: Toggle independent arm position widgets with per-arm switches +- 04f4e2e: Motion plan replayer + docs +- 2c86fdd: Dedicated edit mode + +### Patch Changes + +- 339cb67: Refactor frame editing for plugin extraction +- 76b5ae0: Migrate camera and arm position widgets to use FloatingPanel +- f563895: Add individual switches for arm widgets, similar to cameras +- fec460a: Fix tweakpane styling race condition +- 27b41ec: Add the motion plan JSON parser (`parsePlan`) for the Motion Plan Replayer: validates and normalizes plan JSON into a `ParsedPlan` (frames, parents, trajectory, goals). +- 2da1274: Add frame-descriptor derivation for the Motion Plan Replayer: converts a `ParsedPlan` into static and jointed `FrameDescriptor`s (geometry, orientation conversion, joint-index mapping, end-effector reparenting). +- 0f42c63: Add per-step snapshot generation (`parsedPlanToSnapshots`) and the `PartOfPlan` ECS relation for the Motion Plan Replayer, turning frame descriptors into renderable snapshots grouped under a plan entity. +- 7292c08: Add the Motion Plan Replayer plugin shell: a dashboard-mounted floating panel that uploads plan JSON files, parses them into snapshots, and lists them with ready/error/no-trajectory status. Exposes an `extraSource` snippet receiving `addPlan` so an embedding app can inject its own plan source (e.g. a DB picker) without escaping the plugin's context. +- ddfa766: Render Motion Plan Replayer plans in 3D and add the timeline scrubber. Selecting a plan spawns its snapshot entities under a plan entity, and a bottom scrubber (play/pause, step, seek) resolves each slider position to the corresponding snapshot via `reconcileSnapshotEntities`. Plan entities are tinted and torn down as a group through the `PartOfPlan` relation. +- a388301: Add persistent per-frame display config to the Motion Plan Replayer. Per-frame color, opacity, visibility, and axes edits made via the scene Details panel and tree now persist across scrubbing instead of being reset each step. Also fixes the Details panel "show axes helper" toggle, which previously had no effect because the batched axes renderer never reacted to the trait being added or removed at runtime. +- 3f4bd3b: Render mesh geometry in the Motion Plan Replayer. + ## 1.36.2 ### Patch Changes diff --git a/package.json b/package.json index 0a8540b66..ca153752c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@viamrobotics/motion-tools", - "version": "1.36.2", + "version": "1.37.0", "description": "Motion visualization with Viam", "license": "Apache-2.0", "type": "module", @@ -546,10 +546,9 @@ "@threlte/rapier": ">=3", "@threlte/xr": ">=1", "@viamrobotics/prime-core": ">=0.1", - "@zag-js/dialog": ">=1.31", + "@zag-js/dialog": ">=1", "@viamrobotics/svelte-sdk": ">=0.1", "@zag-js/collapsible": ">=1", - "@zag-js/dialog": ">=1", "@zag-js/floating-panel": ">=1", "@zag-js/popover": ">=1", "@zag-js/svelte": ">=1",