Skip to content

Dev#66

Merged
cmjang merged 19 commits into
mainfrom
dev
Apr 12, 2026
Merged

Dev#66
cmjang merged 19 commits into
mainfrom
dev

Conversation

@cmjang
Copy link
Copy Markdown
Collaborator

@cmjang cmjang commented Apr 12, 2026

No description provided.

kleinlau17 and others added 19 commits April 4, 2026 06:12
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tness and viewer layout

- Enhance mesh/texture path normalization with known asset root detection
- Add MJCF eigenvalue-based inertia validation and balanceinertia compiler flag
- Add SDF synthetic root omission and unique model child name resolution
- Refactor URDF geometry generation with capsule compatibility fallback
- Add assembly root component selection availability resolution
- Fix viewer container stacking context and overflow handling
- Improve highlight manager, hover interaction and screen-space helpers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…e directly

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…bridge patterns

- Add shared workerPoolClient to reduce duplicated worker bridge boilerplate
  across collada/obj/stl loaders, project archive, usd export and prepared
  export cache bridges
- Consolidate material creation into materials.ts and urdfMaterials.ts,
  remove materialFactory.ts and promiseRejectionGuard utilities
- Improve URDF generator robustness and xacro parser edge cases
- Add material protection utility for Three.js resource lifecycle
- Enhance visualization factories and object sync for better scene management
- Update MJCF geometry/hierarchy builder for improved parsing accuracy
- Add layout actions for AI tools and UI store enhancements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cmjang cmjang merged commit 8b10059 into main Apr 12, 2026
1 check failed
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the application layout and state management, unifying robot design and visualization capabilities under a single Editor mode and introducing an AI Conversation feature. Key updates include the implementation of a popup handoff protocol for imports, the addition of extension slots for external integrations, and the modularization of complex hooks into specialized sub-hooks. The Visualizer and URDF Viewer components are now integrated within the Editor domain. Feedback suggests improving the assembly naming logic during auto-seeding by deriving names from the imported archive filename rather than the potentially stale robot state.


if (canSeedAssembly) {
if (shouldAutoSeedArchiveAssembly) {
assemblyStoreState.initAssembly(robotState.name || 'my_project');
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.

medium

When auto-seeding an assembly from an imported archive, the assembly name should ideally be derived from the archive filename rather than the current (possibly default) robot name. Using robotState.name here might result in the assembly being named 'robot' if it's the first import in a session, as the store hasn't been updated with the new robot data yet. This also applies to the initAssembly call on line 554.

                const assemblyName = inputFiles[0].name.replace(/\.[^/.]+$/, '');
                assemblyStoreState.initAssembly(assemblyName);

}
});
markUnsavedChangesBaselineSaved('assembly');
} else if (canSeedAssembly) {
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.

medium

Similar to the multi-component auto-seed case, the assembly name here should be derived from the imported file name to avoid using a stale or default name from robotState.name.

                const assemblyName = inputFiles[0].name.replace(/\.[^/.]+$/, '');
                assemblyStoreState.initAssembly(assemblyName);

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants