You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Auto index format — meshes now use 16-bit indices when small enough, 32-bit otherwise, halving index memory on large models.
Frustum culling + per-mesh bounding boxes — off-screen geometry is skipped each frame.
Out-of-memory guards on buffer creation with friendly warnings instead of a crash.
Device-lost recovery around Present/Resize so a GPU reset re-creates the renderer instead of dying.
Back-face culling removed — models always render double-sided (reverted after it made models look hollow).
New file-format support
OBJ + companion .mtl — material colors are parsed and baked into exported .x files.
GLB / glTF import with color (via SharpGLTF).
(STEP was prototyped, then removed from scope at your request.)
Loading experience
Splash-screen file loading — launching the app directly with a model holds the splash, shows the file name under the progress bar, and falls back to a serial retry if async load fails.
In-app loading overlay — opening a file from inside the app shows a centered "Loading model" card with an indeterminate bar and the file name below it.
Object shading & appearance tools
Appearance icon changed to an eye (Day / Night / Transparent retained).
New paintbrush "Object shading" tool — recolor the whole model from 12 preset color swatches with live preview and Restore original colors; color carries into .x / .obj / .glb exports (note clarifies .stl has no color).
Swatches render as real color tiles instead of default button chrome.
Wireframe icon changed to a distinct cube glyph so it's no longer confused with the gridlines icon.
Settings (new)
Dedicated Settings dialog behind a new cog button under Help.
Configure default projection (Perspective/Orthographic), wireframe by default, gridlines by default, and dark theme by default — applied live and persisted across restarts.
Wireframe preference is now actually saved (it wasn't persisted before).
Help & About
Help dialog reorganized into "Help & About" with About moved to the bottom (standalone About button removed).
Each CLI command is in its own bordered box with a copy button (top-right) that confirms with a checkmark.
Help text is selectable/copyable and reflects that the exe runs by name without a full path.
Click-outside-to-close (light dismiss) added to both Help and Settings; copy buttons no longer clip off the window edge; dialogs centered properly.
CLI / installation
CLI registration (register-cli.ps1) — adds the app to your user PATH, creates an x3d shortcut, registers App Paths, and associates .x .hxx .obj .stl .glb .gltf so the app runs as DirectX3DViewer model.x from any new terminal.
Text / polish
All em dashes removed from the UI (desktop and web), replaced with hyphens.