Skip to content

Dev#50

Merged
cmjang merged 7 commits intomainfrom
dev
Mar 13, 2026
Merged

Dev#50
cmjang merged 7 commits intomainfrom
dev

Conversation

@cmjang
Copy link
Collaborator

@cmjang cmjang commented Mar 13, 2026

No description provided.

@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers a substantial overhaul of the URDF Studio application, focusing on a more robust and user-friendly experience. Key areas of improvement include a new history management system for undo/redo, refined collision body manipulation, and a comprehensive UI/UX refresh. The underlying parsing and generation logic for URDF and MJCF have been upgraded, and the project file format has been extended to ensure a more complete and reliable saving of workspace states.

Highlights

  • Enhanced History Management: Introduced a new useActiveHistory hook and refactored undo/redo functionality across both robot and assembly states, including pending history commits for smoother UI interactions.
  • Improved Collision Transform Controls: Refactored collision body transformation controls with a new useCollisionTransformStore for transient drag states, offering better preview and interaction.
  • UI/UX Refinements: Significant UI/UX improvements including a new ToolboxMenu component, enhanced number input controls with steppers, flexible rotation input (Euler/Quaternion), and improved styling across various panels and components.
  • Updated Project File Format (.usp): The .usp project file format has been updated to support more comprehensive state saving, including detailed history, asset management, and UI preferences.
  • Core Parser and Generator Enhancements: MJCF parsing now supports fullinertia and quaternion rotations for inertial properties, handles plane geometry more robustly, and URDF generation includes options for relative mesh paths.
  • Viewer Interaction and Visualization Improvements: Refinements to viewer interaction, hover detection, robot loading, and visualization effects, including more precise camera focus targeting and optimized rendering of primitive geometries.
Changelog
  • package-lock.json
    • Added @types/react-dom and peer: true to several dependencies.
  • package.json
    • Added @types/react-dom.
  • src/app/App.tsx
    • Refactored robot state memoization and dependencies.
  • src/app/AppLayout.tsx
    • Integrated new history management, added collision transform handlers, and updated asset store properties.
  • src/app/components/AboutModal.tsx
    • Replaced Github icon with custom GitHubMark SVG.
  • src/app/components/Header.tsx
    • Integrated useActiveHistory and refactored toolbox menu into a new component.
  • src/app/components/LazyOverlayFallback.tsx
    • Updated backdrop style.
  • src/app/components/SettingsModal.tsx
    • Removed unused viewOptions and setViewOption.
  • src/app/components/UnifiedViewer.tsx
    • Updated onHover and snapshotAction types, removed hoveredSelection prop, added onCollisionTransformPreview, and updated styling for file preview banner.
  • src/app/components/WorkspaceCanvas.tsx
    • Updated sceneRef and snapshotAction types, added controlLayerKey prop, and refined styling for context lost message.
  • src/app/components/header/ToolboxMenu.tsx
    • Added new component for toolbox menu with various external links and tools.
  • src/app/hooks/index.ts
    • Exported new useActiveHistory hook.
  • src/app/hooks/useActiveHistory.ts
    • Added new hook to manage active undo/redo history based on current sidebar tab.
  • src/app/hooks/useAppEffects.ts
    • Replaced direct useRobotStore undo/redo with useActiveHistory.
  • src/app/hooks/useFileExport.ts
    • Updated export logic to use new project archive structure and history states.
  • src/app/hooks/useFileImport.ts
    • Updated import logic to handle new project archive structure and history states.
  • src/app/hooks/useViewerOrchestration.ts
    • Updated transformPendingRef type and handleHover logic to include objectIndex.
  • src/app/hooks/useWorkspaceSourceSync.ts
    • Updated to sync allFileContents and handle generated content for assembly components.
  • src/app/utils/pendingHistory.ts
    • Added utility for flushing pending history actions.
  • src/core/loaders/meshLoader.ts
    • Allowed HTTP/HTTPS URLs for assets and removed unused MAX_UNIT_DETECTION_SAMPLES.
  • src/core/parsers/filePreview.ts
    • Removed parseMJCF import.
  • src/core/parsers/mjcf/mjcfGenerator.ts
    • Added THREE import, quatStr helper, and improved inertial property generation to support fullinertia and quat.
  • src/core/parsers/mjcf/mjcfGeometry.ts
    • Added handling for skipping non-importable 'plane' geometry and removed plane geometry creation.
  • src/core/parsers/mjcf/mjcfHierarchyBuilder.ts
    • Refactored hierarchy building to use URDFVisual and URDFCollider directly, applying geom transforms to containers.
  • src/core/parsers/mjcf/mjcfLoader.ts
    • Simplified imports by removing direct parsing functions, relying on mjcfModel for parsing.
  • src/core/parsers/mjcf/mjcfModel.ts
    • Removed size parameter from inferGeomType.
  • src/core/parsers/mjcf/mjcfParser.ts
    • Simplified imports, removed parseEuler and convertInertia functions, added tempRPYQuaternion and tempRPYEuler, updated convertJointType for FLOATING, added hasImportableGeometry and shouldPreserveSyntheticWorldRoot, and updated mjcfToRobotState to handle plane geometry and geom.quat for origin.
  • src/core/parsers/urdf/parser/geometry.ts
    • Removed Vector3 import.
  • src/core/parsers/urdf/parser/linkParser.ts
    • Added UrdfLink['visual'] type annotation.
  • src/core/parsers/urdf/urdfGenerator.ts
    • Updated generateURDF to accept UrdfGeneratorOptions for extended and useRelativePaths, and applied useRelativePaths to mesh filenames.
  • src/core/parsers/usd/usdLoader.ts
    • Updated comments to reflect USDLoader usage, removed extractGeometryInfo and convertThreeGroupToModel functions.
  • src/core/parsers/xacro/xacroParser.ts
    • Added RegExpExecArray | null type to match variables and updated expandMacroCall arguments.
  • src/core/robot/assemblyMerger.ts
    • Removed AssemblyComponent and BridgeJoint imports.
  • src/core/robot/builders.ts
    • Updated generateId to use slice instead of substr.
  • src/core/robot/identity.ts
    • Added new file with resolveLinkKey and resolveJointKey utilities.
  • src/core/robot/index.ts
    • Exported new treeRoots and identity utilities.
  • src/core/robot/treeRoots.ts
    • Added new file with utilities for determining robot tree display roots.
  • src/core/stl-compressor/meshCompressor.ts
    • Removed triangleCount parameter from vertexClusteringSimplify.
  • src/core/utils/numberPrecision.ts
    • Changed GEOMETRY_DIMENSION_STEP from 0.00001 to 0.01.
  • src/features/ai-assistant/components/InspectionProgress.tsx
    • Removed lang prop.
  • src/features/assembly/components/BridgeCreateModal.tsx
    • Removed AssemblyComponent and BridgeJoint imports.
  • src/features/code-editor/components/SourceCodeEditor.tsx
    • Added attachFindWidgetTooltipSuppression to prevent tooltips from obscuring the find widget.
  • src/features/file-io/components/ExportDialog/ExportDialog.tsx
    • Added useRelativePaths option for URDF and Xacro exports, removed unused NumberField component.
  • src/features/file-io/components/ExportDialog/index.ts
    • Exported XacroExportConfig.
  • src/features/file-io/components/InspectionReportTemplate.tsx
    • Removed issueTypeLabel variable.
  • src/features/file-io/hooks/useFileImport.ts
    • Removed isAssetFile import, lowerName variable, and theme and setLang from UI store. Updated asset file extensions to include hdr.
  • src/features/file-io/hooks/usePdfExport.tsx
    • Removed generatePdfFromHtml import.
  • src/features/file-io/utils/assetUtils.ts
    • Removed ext variable.
  • src/features/file-io/utils/formatDetection.ts
    • Added hdr to isAssetFile extensions.
  • src/features/file-io/utils/generatePdfFromHtml.ts
    • Removed fileName parameter from generatePdfFromHtml and lang from generatePdfWithJsPDF.
  • src/features/file-io/utils/libraryFileExport.ts
    • Added createArchiveRoot function and used it for zipping.
  • src/features/file-io/utils/projectArchive.ts
    • Added new file defining project archive structure and utility functions.
  • src/features/file-io/utils/projectExport.ts
    • Updated project export logic to use new project archive structure, history, and asset packing.
  • src/features/file-io/utils/projectImport.ts
    • Updated project import logic to handle new project archive structure, history, and asset unpacking.
  • src/features/property-editor/components/CollisionOptimizationDialog.tsx
    • Updated styling for stat cards, layout classes, and candidate meta display.
  • src/features/property-editor/components/FormControls.tsx
    • Added new components IconSegmentedControl, usePressAndHoldStepper, useInputSelectionBehavior, AxisNumberGridInput, and updated NumberInput and Vec3InlineInput for stepper functionality and input selection behavior.
  • src/features/property-editor/components/GeometryEditor.tsx
    • Integrated useCollisionTransformStore for pending collision transforms, removed cloneGeometry and getCollisionGeometryEntries, and updated origin input to use RotationValueInput and new step constants.
  • src/features/property-editor/components/JointProperties.tsx
    • Integrated RotationValueInput and IconSegmentedControl for joint origin and type editing, and updated step constants.
  • src/features/property-editor/components/LinkProperties.tsx
    • Integrated RotationValueInput for inertial origin editing and updated step constants.
  • src/features/property-editor/components/PropertyEditor.tsx
    • Used resolveLinkKey and resolveJointKey to resolve selection IDs and passed lang prop to child components.
  • src/features/property-editor/components/RotationValueInput.tsx
    • Added new component for flexible rotation input (Euler degrees/radians, Quaternion) with reference frame selection.
  • src/features/property-editor/constants.ts
    • Added new file defining constants for property editor.
  • src/features/property-editor/utils/collisionOptimization.ts
    • Removed index parameter from meshTargets.forEach.
  • src/features/property-editor/utils/geometryConversion.ts
    • Initialized _tempEuler and _tempEulerB with 'ZYX' order, removed isPreferredCapsuleMetrics and isPreferredCapsuleFit, and updated alignOriginToPrimaryAxis and alignOriginToAxis to use 'ZYX' order.
  • src/features/property-editor/utils/rotationFormat.ts
    • Added new file with utilities for rotation format conversion (Euler, Quaternion, reference frames).
  • src/features/robot-tree/components/AssemblyTreeView.tsx
    • Added getTreeDisplayRootLinkIds and showGeometryDetailsByDefault prop.
  • src/features/robot-tree/components/TreeEditor.tsx
    • Integrated getPrimaryTreeDisplayRootLinkId, getTreeDisplayRootLinkIds, structureTreeShowGeometryDetails from UI store, and updated folder expansion logic.
  • src/features/robot-tree/components/TreeNode.tsx
    • Added showGeometryDetailsByDefault prop, new joint type icons, updated tree connector styling, and added geometry details toggle.
  • src/features/urdf-gallery/components/RobotPreview.tsx
    • Removed Box icon.
  • src/features/urdf-gallery/components/RobotThumbnail3D.tsx
    • Updated comments to reflect static preview, removed groupRef and continuous rotation, and disabled shadows.
  • src/features/urdf-viewer/components/CollisionPendingEditOverlay.tsx
    • Updated styling for input field.
  • src/features/urdf-viewer/components/CollisionTransformControls.tsx
    • Refactored to use UnifiedTransformControls with new props, removed pending edit overlay, and updated drag logic.
  • src/features/urdf-viewer/components/HoverSelectionSync.tsx
    • Added new component to synchronize hover selection with the viewer.
  • src/features/urdf-viewer/components/JointInteraction.tsx
    • Added hoverStyle and displayStyle to UnifiedTransformControls.
  • src/features/urdf-viewer/components/RobotModel.tsx
    • Integrated HoverSelectionSync, added robotJoints and onCollisionTransformPreview props, and updated CollisionTransformControls props.
  • src/features/urdf-viewer/components/URDFViewer.tsx
    • Removed React import, theme prop, hoveredSelection prop, and confirmTitle/cancelTitle props. Added robotJoints and onCollisionTransformPreview props.
  • src/features/urdf-viewer/components/URDFViewerPanels.tsx
    • Removed React import and updated styling for info overlay.
  • src/features/urdf-viewer/components/URDFViewerScene.tsx
    • Removed React import, hoveredSelection prop, confirmTitle/cancelTitle props. Added hoverSelectionEnabled, robotJoints, and onCollisionTransformPreview props.
  • src/features/urdf-viewer/components/ViewerOptionsPanel.tsx
    • Removed lang prop and updated styling for buttons.
  • src/features/urdf-viewer/hooks/useCameraFocus.ts
    • Added selection prop, collectLinkBodies, and resolveFocusObject functions for more precise focus targeting.
  • src/features/urdf-viewer/hooks/useHighlightManager.ts
    • Updated linkMeshMapRef type, removed _triVert refs, added getActiveBoundingMode, and updated getRobotBoundingBox to use collectPickTargets.
  • src/features/urdf-viewer/hooks/useHoverDetection.ts
    • Updated linkMeshMapRef type, added robotVersion prop, onHover prop, emitHoverSelection, getPickTargets, and findPickIntersections. Refactored hover logic to use new pick target system.
  • src/features/urdf-viewer/hooks/useMouseInteraction.ts
    • Updated linkMeshMapRef type, added robotVersion prop, onHover prop, getPickTargets, and findPickIntersections. Refactored mouse interaction logic to use new pick target system.
  • src/features/urdf-viewer/hooks/usePanelDrag.ts
    • Removed PanelPositions interface.
  • src/features/urdf-viewer/hooks/useRobotLoader.ts
    • Added URDFJoint as RuntimeURDFJoint import, getCollisionGeometryEntries import, UrdfJoint import. Added JointPatchCandidate, sameLimit, sameDynamics, sameHardware, isSameJoint, getJointPatchForJoint, detectSingleJointPatch, applyOriginToJoint, patchJointInPlace functions. Updated GeometryPatchCandidate with more detailed change flags. Refactored patchGeometryCategory and applyGeometryPatchInPlace to handle in-place updates more robustly. Added robotJoints prop and prevRobotJointsRef for joint patching. Replaced skipReloadForContentRef with skipReloadCountRef.
  • src/features/urdf-viewer/hooks/useURDFViewerController.ts
    • Removed onMeshSelect prop. Added transformReferenceFrame and setTransformReferenceFrame from UI store.
  • src/features/urdf-viewer/hooks/useViewerSettings.ts
    • Integrated transformReferenceFrame and setTransformReferenceFrame from UI store.
  • src/features/urdf-viewer/hooks/useVisualizationEffects.ts
    • Updated linkMeshMapRef type, removed hoveredSelection prop, added syncHoverHighlight function. Refactored isCollisionGeometryVisible and inertia/CoM visualization to use userData for caching. Updated createOriginAxes and createJointAxisViz logic.
  • src/features/urdf-viewer/types.ts
    • Added UrdfJoint and TransformReferenceFrame imports. Updated onHover signature, added robotJoints, onCollisionTransformPreview, transformReferenceFrame, and hoverSelectionEnabled props. Updated snapshotAction, isOrbitDragging, isSelectionLockedRef, and justSelectedRef types to RefObject. Added robotVersion and onTransformChange to CollisionTransformControlsProps.
  • src/features/urdf-viewer/utils/pickTargets.ts
    • Added new file with utilities for collecting and finding raycast pick targets.
  • src/features/urdf-viewer/utils/transformGizmo.ts
    • Added resolveTransformGizmoRoot and hideStockAxisLines functions. Updated gizmo sizes and thickness.
  • src/features/visualizer/components/Visualizer.tsx
    • Updated snapshotAction type, added onContextMenu handler, and removed confirmTitle/cancelTitle props.
  • src/features/visualizer/components/VisualizerCanvas.tsx
    • Updated snapshotAction and sceneRef types, and removed theme prop.
  • src/features/visualizer/components/VisualizerPanels.tsx
    • Removed React import and transformMode/setTransformMode props.
  • src/features/visualizer/components/VisualizerScene.tsx
    • Removed React import, confirmTitle/cancelTitle props. Added tempRotationRef and handleCollisionDraggingChanged. Updated JointTransformControls and UnifiedTransformControls props.
  • src/features/visualizer/components/controls/CollisionTransformControls.tsx
    • Updated gizmo sizes and thickness.
  • src/features/visualizer/components/controls/JointTransformControls.tsx
    • Removed React import, confirmTitle/cancelTitle props. Updated transformMode type and UnifiedTransformControls props.
  • src/features/visualizer/components/nodes/GeometryRenderer.tsx
    • Added ReactNode import. Updated originRotation to use 'ZYX' order. Refactored geometry rendering to use unit-sized geometries and mesh.scale for dimensions.
  • src/features/visualizer/components/nodes/JointNode.tsx
    • Updated transformMode type. Added jointRotation to use 'ZYX' order. Removed selectionTarget prop.
  • src/features/visualizer/components/nodes/RobotNode.tsx
    • Removed React import and updateCollisionGeometryByObjectIndex import. Updated visualRef to _visualRef. Removed handleGeometryTransformEnd logic.
  • src/features/visualizer/hooks/useTransformControls.ts
    • Added resolveJointKey import. Added tempEulerRef, rotateTransformControlRef, getObjectRPY, applyAxisRotationValue, persistSelectedObject functions. Updated transformMode type. Refactored dragging logic to use bindDraggingListener and persistSelectedObject.
  • src/features/visualizer/hooks/useVisualizerController.ts
    • Added resolveLinkKey import. Added tempRotationRef. Updated transformControlsState to use universal mode for skeleton. Updated handleCollisionTransformEnd to use resolveLinkKey and tempRotationRef.
  • src/features/visualizer/hooks/useVisualizerState.ts
    • Integrated transformReferenceFrame and setTransformReferenceFrame from UI store. Updated transformMode type.
  • src/features/visualizer/utils/materialCache.ts
    • Removed key from MaterialOptions and getCachedMaterial. Updated cacheKey generation.
  • src/shared/components/3d/SceneUtilities.tsx
    • Updated actionRef type. Updated pmremGenerator.fromScene intensity. Added enableShadows and shadowMapSize props to SceneLighting. Updated shadow map settings and camera position/quaternion tracking. Updated ReferenceGrid styling and render order.
  • src/shared/components/3d/UsageGuide.tsx
    • Updated detectOS logic to use userAgentDataPlatform.
  • src/shared/components/3d/helpers/CoordinateAxes.tsx
    • Removed React import.
  • src/shared/components/3d/helpers/InertiaBox.tsx
    • Updated THREE.Euler order to 'ZYX'.
  • src/shared/components/3d/renderers/DAERendererImpl.tsx
    • Removed React import.
  • src/shared/components/3d/renderers/OBJRendererImpl.tsx
    • Removed React import.
  • src/shared/components/3d/renderers/STLRendererImpl.tsx
    • Removed React import.
  • src/shared/components/Panel/DetailOptionsPanel.tsx
    • Added new div for move/rotate labels.
  • src/shared/components/Panel/HardwareOptionsPanel.tsx
    • Updated transformMode type.
  • src/shared/components/Panel/JointControlItem.tsx
    • Updated updateLimit logic. Updated styling for input fields and labels.
  • src/shared/components/Panel/OptionsPanel.tsx
    • Removed Separator import. Removed DraggablePanelState interface.
  • src/shared/components/Panel/SkeletonOptionsPanel.tsx
    • Removed SegmentedControl and transformMode/setTransformMode props.
  • src/shared/components/SelectableText.tsx
    • Updated webkitUserSelect to WebkitUserSelect.
  • src/shared/components/ui/Checkbox.tsx
    • Updated styling for checkbox and checkmark.
  • src/shared/components/ui/Slider.tsx
    • Updated thumbWidth, added sliderRef, isThumbHovered, updateThumbHover, thumbBoxShadow. Updated styling for track and thumb.
  • src/shared/components/ui/Switch.tsx
    • Updated styling for switch.
  • src/shared/hooks/useTheme.ts
    • Removed Theme import.
  • src/shared/i18n/locales/en.ts
    • Added new translation keys for robot categories, collision optimizer toolbox description, origin reference frame, rotation formats, and geometry details.
  • src/shared/i18n/locales/zh.ts
    • Added new translation keys for robot categories, collision optimizer toolbox description, origin reference frame, rotation formats, and geometry details.
  • src/shared/i18n/types.ts
    • Added new translation keys for robot categories, collision optimizer toolbox description, origin reference frame, rotation formats, and geometry details.
  • src/shared/utils/math.ts
    • Updated JSDoc for computeEigenDecomposition3x3. Removed unused variables in computeEigenDecomposition3x3.
  • src/store/assemblyStore.ts
    • Updated AssemblyActions to include history management (undo, redo, canUndo, canRedo, clearHistory, pushHistorySnapshot). Refactored setAssembly, initAssembly, exitAssembly, addComponent, removeComponent, updateComponentName, updateComponentRobot, toggleComponentVisibility, addBridge, removeBridge, updateBridge to interact with the new history system. Added caching for getMergedRobotData.
  • src/store/collisionTransformStore.ts
    • Added new file defining a Zustand store for managing pending collision transform states.
  • src/store/index.ts
    • Exported new types RotationDisplayMode and TransformReferenceFrame. Exported useAssemblyCanUndo, useAssemblyCanRedo, useCollisionTransformStore, and PendingCollisionTransform.
  • src/store/robotStore.ts
    • Updated RobotActions to include history management (pushHistorySnapshot). Refactored setName, setRobot, addLink, updateLink, deleteLink, setLinkVisibility, setAllLinksVisibility, addJoint, updateJoint, deleteJoint, addChild, deleteSubtree to interact with the new history system.
  • src/store/selectionStore.ts
    • Updated setHoveredSelection, hoverLink, hoverJoint, and clearHover to prevent unnecessary state updates if the selection is unchanged.
  • src/store/uiStore.ts
    • Added new types RotationDisplayMode and TransformReferenceFrame. Added new state properties rotationDisplayMode, transformReferenceFrame, and structureTreeShowGeometryDetails with corresponding setters. Updated detectOs logic. Added migration for persisted state to include transformReferenceFrame.
  • src/styles/index.css
    • Updated CSS variables for accent colors, segmented controls, switches, and sliders for both light and dark themes, including new shadow styles for slider thumbs.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/ci.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@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 delivers a substantial refactoring of the application's state management, particularly focusing on history and property updates. Key improvements include a debounced history system, which enhances robustness, and significant UI/UX upgrades in the property editor with new, more interactive form controls. Performance is also boosted through incremental updates to the robot model, avoiding full reloads on minor changes. While the changes are extensive, they represent a major step forward in the application's architecture and user experience. My only concern is a change that reduces the precision of geometry dimension adjustments, which might impact fine-tuning of models.

@@ -1,5 +1,5 @@
export const MAX_GEOMETRY_DIMENSION_DECIMALS = 5;
export const GEOMETRY_DIMENSION_STEP = 0.00001;
export const GEOMETRY_DIMENSION_STEP = 0.01;

Choose a reason for hiding this comment

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

medium

The step for geometry dimensions has been increased significantly from 0.00001 to 0.01. This makes the stepper controls much coarser, which could negatively impact users who need to make fine-tuned adjustments to their models. While a larger step can speed up rough adjustments, this 1000x increase might be too aggressive. Consider using a smaller value, like 0.001, as a compromise between ease of use and precision.

Suggested change
export const GEOMETRY_DIMENSION_STEP = 0.01;
export const GEOMETRY_DIMENSION_STEP = 0.001;

@cmjang cmjang merged commit 93ad712 into main Mar 13, 2026
2 checks passed
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