Skip to content

Add Zoodle inset appearance and service-backed tools#12287

Open
franknoirot wants to merge 5 commits into
franknoirot/adhoc/zoodle-engine-scene-runtime-extensionfrom
franknoirot/adhoc/zoodle-inset-appearance
Open

Add Zoodle inset appearance and service-backed tools#12287
franknoirot wants to merge 5 commits into
franknoirot/adhoc/zoodle-engine-scene-runtime-extensionfrom
franknoirot/adhoc/zoodle-inset-appearance

Conversation

@franknoirot

@franknoirot franknoirot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Inset the engine stream while Zoodle is active and move the green active-state treatment into the runtime stream contribution.
  • Add a Zoodle service contract with static tool definitions and a session-scoped equipTool API.
  • Render Zoodle tool controls from the service definitions and apply draw/erase behavior from the service-backed active tool signal.

Stacked on #12284 (franknoirot/adhoc/zoodle-engine-scene-runtime-extension).

Demo

Screenshare.-.2026-07-01.1_56_04.PM-compressed.mp4

Testing

  • npx biome check --formatter-enabled=true --linter-enabled=false --organize-imports-enabled=true --files-ignore-unknown=true src/components/ViewportAnnotationOverlay.tsx src/components/MlEphantConversation.spec.tsx src/registry/contracts/zoodle.ts src/registry/extensions/engineScene/zoodleRuntimeExtension.tsx src/registry/extensions/engineScene/zoodleRuntimeExtension.spec.ts
  • npx vitest run --mode=development src/registry/extensions/engineScene/zoodleRuntimeExtension.spec.ts src/registry/extensions/engineScene/index.spec.ts src/components/MlEphantConversation.spec.tsx
  • npm run tsc -- --noEmit

@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
modeling-app Ready Ready Preview, Comment Jul 1, 2026 6:11pm

Request Review

@franknoirot franknoirot force-pushed the franknoirot/adhoc/zoodle-engine-scene-runtime-extension branch from 045ee32 to e47dc64 Compare June 29, 2026 22:18
@franknoirot franknoirot force-pushed the franknoirot/adhoc/zoodle-inset-appearance branch from f3c9605 to 67f5a26 Compare June 29, 2026 22:23
@franknoirot franknoirot force-pushed the franknoirot/adhoc/zoodle-engine-scene-runtime-extension branch from 4a85f8d to 1c87cc4 Compare June 29, 2026 22:53
@franknoirot franknoirot force-pushed the franknoirot/adhoc/zoodle-inset-appearance branch from 67f5a26 to bb8725a Compare June 29, 2026 22:55
@franknoirot franknoirot force-pushed the franknoirot/adhoc/zoodle-engine-scene-runtime-extension branch from 1c87cc4 to 948b391 Compare June 30, 2026 18:40
@franknoirot franknoirot force-pushed the franknoirot/adhoc/zoodle-inset-appearance branch from bb8725a to c52313c Compare June 30, 2026 18:42
@franknoirot franknoirot marked this pull request as ready for review June 30, 2026 20:55
@franknoirot franknoirot requested a review from a team as a code owner June 30, 2026 20:55
@franknoirot franknoirot added the area/zookeeper Relates to generative CAD agent label Jul 1, 2026
Comment on lines +287 to 288
const [isZoodleActive, setIsZoodleActive] = useState(false)
const zoodleRuntimeExtensionActive = useRef(false)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These 2 states look very similar, could they be unified? I understand a ref doesn't update React and the state may be lagging by an update cycle..if it's unavoidable it may be worth adding a comment for why there is both?

@andrewvarga andrewvarga left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! A small UX NIT:
There is an animation for the green inset, which is sometimes fluid, sometimes it skips (in your video it jumps without an animation). Not sure if that's intentional but if it fades in, it should probably also fade out when you deactivate it to be consistent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/zookeeper Relates to generative CAD agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants