## Why The application currently renders a placeholder "3D viewport will be displayed here" text instead of showing actual USD scene geometry. Users cannot visually inspect their USD stages, making the tool incomplete for scene authoring workflows. A functional viewport is essential for any USD editing application — without it, users must switch to an external viewer (e.g., usdview) to see their changes. ## What Changes - Add an OpenGL-based 3D viewport that renders USD stage geometry within the existing dockable "Viewport" panel - Implement a camera system (orbit, pan, zoom) for navigating the 3D scene - Add Hydra or direct UsdGeom-based rendering to traverse the stage and draw meshes, transforms, and materials - Provide viewport controls (grid display, axis indicator, background color) via a toolbar or context menu - Render a ground grid and axis gizmo for spatial orientation ## Capabilities ### New Capabilities - `viewport-renderer`: OpenGL rendering pipeline that traverses USD prims and draws geometry, materials, and transforms into an FBO-backed ImGui image - `viewport-camera`: Interactive camera controller supporting orbit, pan, and zoom with mouse input mapped through the ImGui viewport window - `viewport-overlay`: Grid, axis gizmo, and viewport settings overlay rendered on top of the 3D scene ### Modified Capabilities ## Impact - **src/ui/Application.h/cpp**: Replace placeholder viewport section with a ViewportPanel that owns the renderer and camera - **New files**: ViewportPanel, UsdSceneRenderer, ViewportCamera classes - **Dependencies**: OpenGL 3.3+ (already available via WGL context), OpenUSD UsdGeom/UsdShade APIs - **Build system**: CMakeLists.txt must compile new source files and link OpenGL - **Rendering path**: Initially UsdGeom traversal with OpenGL draw calls; Hydra integration deferred to a future change