PVD Mosaic Portfolio / Operating manual

Editor & Gallery
Instructions

Fast procedures first, detailed tools second, and practical explanations of why the system works this way. This guide applies to version 204 of the complete portfolio software package.

Complete releaseWorking-copy safeImages + interactive CADSearchable index
v204

SolidWorks launcher startup repair

“The system cannot find the path specified”

Replace the old PVD_SolidWorks_Editor.cmd with the launcher in v204 and double-click it. The release builder incorrectly changed Windows’ fixed WindowsPowerShell\v1.0 directory to the PVD release number. This prevented PowerShell from starting. The corrected launcher uses the fixed v1.0 directory for Windows PowerShell 5.1, selects the 64-bit executable from 32-bit contexts, and provides a specific path diagnostic if the runtime is missing. No cache deletion or SolidWorks reinstall is required.

Only the PVD console title and versioned extraction folder now change between releases. Build checks validate both executable paths. The launcher disables delayed variable expansion to preserve exclamation marks in file names and returns the actual process exit status.

Can SolidWorks decals be imported?

Decals are not transferred by the current native importer. Full detail retains available appearance values, material metadata and lighting; it does not include decal images or image/procedural textures. This limitation now appears before import.

SolidWorks exposes decal image paths and separate mask properties through its API. Correct browser rendering also needs projection/UV mapping, layer order and visibility. A dedicated translation step is required; v204 does not add that step. Standard texture maps already embedded in supported GLB/glTF files remain importable through Configuration Construction. SolidWorks’ Extended Reality documentation lists decals among advanced capabilities that require approved-provider viewers, so exporting XR GLB is not a guarantee that decals will render here.

References: Face decal properties, Decal mask properties, Extended Reality export limitations.

v203

Direct compression preview and Configuration Construction

Main menu order

Configuration Construction is immediately before Import. The final editing actions are Naming → File Compression → Export, with Info last. File Compression is now a button that opens its preview directly, rather than opening a docked settings menu.

Compression quality levels 1–10

The preview contains Original / Compressed comparison, a numeric Quality selection, Update preview, Advanced settings and Save this compressed copy. 10 keeps exact geometry with lossless cleanup. 1 requests the smallest mesh. Higher levels retain more detail; boundaries, seams and the error limit can prevent reaching the target. The default on loading a scene is 10 to avoid repeated lossy reduction.

LevelRequested triangles keptApproximate body-size error
110%1.00%
220%0.75%
330%0.50%
440%0.30%
550%0.20%
660%0.15%
770%0.10%
880%0.05%
990%0.025%
10100%No triangle reduction

Use Advanced settings inside the preview for configuration scope, manual triangle/error limits, seam protection, proportional texture resizing, gzip, hidden components and source details. Manual quality adjustments show Custom. Update preview after changing options; Save this compressed copy downloads the exact inspected result. Original / Compressed retains the live camera and selected configuration. Advanced settings appear beside the viewport on desktop and over its right side on narrow screens.

Configuration Construction

Import files as configurations has moved from Import into this tab. It retains multi-file GLB/glTF/STL/OBJ/STEP/IGES import, append/new-project choices and source-unit conversion. Configuration naming has moved here from Naming; title/component naming remain under Naming. Edit names inline and press Rename or Enter. View selects the configuration to inspect or locate.

Locate by origin, center, face or corner

  1. Choose Locate by: model origin, model center, Top (+Y), Bottom (−Y), Left (−X), Right (+X), Front (+Z), Back (−Z), or one of eight bounding-box corners.
  2. Choose Place at: project origin (0,0,0), or the matching point on an existing configuration. For example, choose Center plus the matching point on configuration A to center incoming configurations on A. Choose Bottom to align their bottom-face centers. A new project uses project origin.
  3. For incoming files, choose the location before selecting the files; it applies to every file after units are converted. The default Origin → Project origin preserves the previous coordinate behavior.
  4. For an existing file, View its configuration, choose the anchor and target, then press Locate viewed configuration. A reference must be a different configuration. Fit view after locating is optional and defaults on.

Faces use the center of that bounding-box face; center is the axis-aligned bounding-box center. Bounds include hidden geometry and exclude temporary explode offsets. Coordinates refer to project axes, not a rotated face's local normal. Placement translates the configuration without rotating it or changing mesh buffers. Component identities, aliases and relative transforms are retained. Existing measurement points translate with the model. Original CAD files remain untouched; save the scene to retain placement.

Configuration switches continue to keep the live view. An explicit Locate operation may refit the camera only when Fit view after locating is enabled. Model origin means the file's coordinate origin, which moves with the file when aligned by another anchor.

Viewer permissions

Allow opening files controls construction import/location. Allow renaming title, configurations and components controls configuration naming here and title/component naming under Naming. Either permission can expose Configuration Construction with only its allowed sections. Allow saving files controls the direct compression preview and Export.

v202

Card borders and appearance-first compression

Portfolio card viewport borders

Use Card borders beside the gallery display controls. Color, line width (0–16 px) and corner radius (0–80 px) apply to photo and model card tiles. Width zero removes the border. Rounded outside corners remain transparent.

Both gallery cards and the model editor/viewer Viewport menu now offer Solid, Dotted, Dashed, Double, Groove, Ridge, Inset, Outset, Dash–dot, Dash–dot–dot, Wavy, Zigzag and Scalloped. Double and relief styles are clearest at widths of 3 px or more. Custom lines follow rounded corners and never intercept pointer input.

Card-border changes update existing cards without restarting model iframes. Tile model viewers use the gallery's outer frame; expanded models and standalone viewers retain their own saved viewport borders. Copy link to these cards now includes the border settings alongside filters, years, ordering and display settings. Older shared links remain supported.

For published defaults, use the portfolio catalog editor's Gallery Settings → Card viewport borders, then save the catalog to the website. These defaults are stored under gallerySettings.cardBorder. Visitor adjustments are temporary unless shared in a link. Existing catalog extension fields are preserved.

File Compression — simpler controls

  1. Choose Lossless cleanup, High quality, Balanced or Smaller file. The default Lossless cleanup welds identical vertices, compacts buffers and uses gzip without removing triangles or resizing textures.
  2. Choose All configurations or Current only.
  3. Click Preview compression. The actual model opens with Original / Compressed buttons and original/result sizes. Rotate or zoom, then switch; the camera and active configuration remain in place. The original open model is unchanged.
  4. Change Quality in the preview and click Update preview to compare another preset. Save this compressed copy downloads the exact bytes currently inspected. The save button is disabled while settings await an updated preview.
  5. Close to return to the full model. Save compressed copy in the menu also creates a copy with the selected settings. Use Cancel during preparation to stop without downloading a partial file.

Preserving appearance

High quality requests 75% of triangles at a 0.05% approximate body-size error limit; Balanced requests 50% at 0.10%; Smaller file requests 25% at 0.25%. These are conservative PVD defaults, not guaranteed reduction percentages. Error, boundaries, normal/UV seams and topology may prevent reaching the requested count.

Normal, color and all available UV channels participate in simplification error; shading/UV seams and material boundaries are protected by default. Component identities and hierarchy remain intact. Repeated visual materials can share one export identity. No new geometry decoder is required by the resulting scene.

Advanced settings

Open Advanced settings only when necessary. Adjust triangle retention, approximate error, seam protection, texture resolution, gzip, hidden geometry and source material details. Manual mesh/texture adjustments select Custom. Original texture resolution retains the full source, including images larger than the previous 4096 px cap. Optional 4096/2048/1024 px limits resize texture copies proportionally. Unsupported data/compressed/render-target textures remain unchanged and are counted. Source images are never resized in place.

Lossy geometry changes can alter measurements. Existing annotations are omitted only from saved configurations whose geometry changes. The original CAD/full scene remains the reference for precision measurements. Mesh reduction resets to Lossless cleanup on opening a saved result, avoiding repeated lossy reduction.

Thread tools removed

The v201 thread matching, aggressive thread preset and cylinder-replacement controls and processing have been removed. Previously exported proxy geometry remains ordinary geometry; use your original full project/CAD file to recover it. References in older release-history chapters describe those older versions only.

Research and validation

See Maintenance/COMPRESSION_NOTES.md for primary-source references, selected quality limits and implementation decisions. Primary references: glTF Transform simplification, meshoptimizer and texture optimization. Tests cover exact welding, conservative reduction, same-camera original/result previews, rapid comparison switching, exact preview downloads, textures up to 8192 px, optional proportional resizing, all border styles, gallery sharing/defaults, mobile layouts and prior gallery/viewer regressions.

v201

File Compression, mesh reduction and code review

File Compression

The new main menu tab holds all file-size controls: configuration scope, lossless gzip, hidden geometry, source-material metadata, measured packaged size, mesh simplification and thread-body replacement. Export retains Save model + appearance and a shortcut to File Compression. Viewer access to these actions still uses Allow saving files.

  1. Start with Lossless compression. Choose All configurations or Current only and decide whether to keep hidden components and source details.
  2. For geometry reduction, enable Simplify triangles in saved copy. Choose the target percentage of triangles to keep and maximum approximate deviation as a percentage of each body's local size. The default requests 25% of triangles at 0.20% deviation. Material boundaries, open borders and attributes can prevent reaching the triangle target.
  3. Choose All saved mesh bodies or Selected bodies below. Find and check bodies in the current configuration; switch configurations to choose more. Selections remain independent between configurations, even when their mesh node IDs match.
  4. Use Measure export size for actual packaged bytes and triangle results, or Preview saved result to inspect the reduced scene in the matching viewer. Close the preview to return to your full original model.
  5. Use Save compressed copy (.pvdscene) to download with those same settings. Progress includes a Cancel action. Cancellation never downloads a partial scene. Keep a full project if you need to recover omitted geometry.

Mesh simplification runs in an embedded worker and affects saved copies only. Lossy controls default off after opening a saved result to prevent repeated degradation. Unsupported skinning, instancing, morphs, partial draw ranges and unsupported attribute layouts are retained unchanged and counted. General reduction retains material ranges and available vertex attributes. Exact size savings depend on the source.

Helical threads

Choose thread bodies in the target list. Select thread name matches suggests bodies with names such as thread, screw, bolt, stud or helix; it does not identify CAD features. Review every selection.

A thread fused into a bolt head, housing or hole cannot be isolated reliably from tessellation alone. Use simplification for those bodies, or prepare a simplified SolidWorks configuration. Cylinder replacement is a visual proxy with no bounded geometric error. Check the preview before saving.

Measurements and accuracy

Mesh reduction is lossy; diameter, radius, area and volume can change. The approximate deviation metric is not a manufacturing tolerance. Existing annotations are omitted from saved configurations whose geometry changes, while the open full model and its annotations remain unchanged. Use the original CAD/full scene for precision measurements.

Title and configuration field

The title wraps and reserves room to the left of the full numeric side-scale overlay. It stays clear at top/bottom and left/center/right positions. The viewport configuration selector shows only its selection box, retaining its accessible name without the redundant visible caption.

Package review

The package includes Maintenance/CODE_REVIEW.md with findings, fixes, validation limits and architectural recommendations. Fixes include editor/viewer drift, temporary GPU/export-resource cleanup, linear-time clean-copy preparation, stale WordPress upload nonce verification, duplicate CSS, unreachable duplicate-card layouts and unused browser helpers. A maintenance build regenerates the viewer and exact standalone payload from the canonical editor. One stable-name manual remains.

v200

Viewport border styles, transparent corners and slideshow order

Viewport border

In the editor/viewer Viewport menu, choose Border color and Border style: Solid, Dotted, Dashed or Wavy. Existing width/radius controls remain available. Color and style save with the scene-wide viewport settings and browser preferred presets; older scenes default to the red solid border.

Solid/dotted/dashed use native borders. Wavy uses a transparent, pointer-transparent SVG stroke fitted around the rounded viewport; its color, radius and size update with the controls and viewport resize. Setting width to zero hides the border. Native fullscreen remains borderless.

Transparent rounded corners

The editor/viewer document outside the rounded viewport remains transparent. Opaque model iframe backgrounds are removed from gallery tiles, detail cards and slideshow model frames; model tiles also avoid a second rectangular card border. The parent page or presentation container therefore shows through the unused corner regions. The model's interior background is retained. For a custom embed, keep the iframe's own CSS background transparent.

Slideshow order

The slideshow playback rail now has Shuffle, Newest and Oldest buttons. They operate only on the slideshow's current category/search/year-filtered selection and do not reorder or refilter the gallery.

The controls work in standalone, fullscreen and same-origin blog-promoted slideshows, including mobile layouts.

Validation: Chromium tests cover all four border styles, live color, wavy resize/fullscreen behavior, scene roundtrip, and iframe transparency over an arbitrary colored host page. Pixel sampling confirms parent color at the outer rounded corners. Slideshow tests cover chronological traversal, shuffle completeness, unchanged gallery order, category filtering, parent-document promotion and mobile control bounds. The six-visible-model-preview regression is retained.

v199

Show every visible solid-model card

The gallery previously limited live model previews to the first three nearby cards. That could leave the fourth and later visible solid-model cards without a viewer; offscreen preload candidates could also occupy all three slots.

Every model card intersecting the visible viewport now receives its live viewer. The three-preview budget applies only to optional nearby preloading: extra offscreen previews are loaded only when fewer than three visible models use that budget. Preloads are ordered by distance, and viewers outside the visible/nearby set are still removed.

The visible slice is calculated for standalone galleries, auto-height same-origin WordPress embeds and fixed-height scrolling blog iframes. Internal iframe scrolling no longer confuses document coordinates with parent viewport coordinates. Parent height-only resizing also updates previews. Scroll work is batched once per animation frame, with old scheduled work/listeners removed on gallery rebuilds.

Install: upload the matching website files from the complete package, especially portfolio.html, while preserving portfolio.json and model files. No catalog changes are required.

Validation: the old cap was reproduced with six visible cards but only three loaded previews. Six real Chromium WebGL viewers then initialized together with the fix. Additional tests cover standalone scrolling, auto-height parent scrolling, fixed-height internal scrolling, offscreen recycling, parent height resizing, aspect re-renders and opened model-card persistence.

v198

Clearer naming, explicit import-note permission and direct Snapshot

Viewer setup: import notes are hidden by default

Saved transfer warnings previously forced the viewer's Import menu to appear even when opening files was disabled. That bypass is removed. Viewer setup → Viewer actions → Show import notes in viewer is now a separate permission, off by default and in all built-in presets. Enabling menu groups alone does not enable diagnostic notes.

With the option off, the viewer hides Import notes. The Import menu remains hidden unless opening files is independently allowed. Warnings remain stored in the scene and visible in the editor for the author. Existing scenes without this new permission also default to hidden notes. Enable it explicitly only when visitors should see them, then save the .pvdscene.

Naming: edit the item directly

  1. Open Naming. Enter the title and choose Rename title.
  2. Configurations: every configuration has its own name field and Rename button. The current view is labeled currently viewed. Edit a field and click Rename, or press Enter. Use View on another row to switch the model and the component list. Duplicate or blank names produce feedback beside that field; Escape restores the field before it is committed.
  3. Components: the heading states Components in: [configuration name]. These names apply only to that configuration. Edit the desired component's field and press Rename or Enter. One logical component row represents all its bodies; body counts are shown.
  4. Use Find a component to filter by display name or native path. Lists show up to 100 matching components at a time; narrow the search for large assemblies.
  5. Save the .pvdscene through Export to retain the renamed items. Renaming does not alter native source references or appearance-link identities.

The old configuration/component dropdown and separate unnamed text fields are removed. Rename permissions and existing component aliases are retained. Inputs and labels use the dock's dark styling while the panel is open, and validation messages appear at the affected row.

Snapshot opens immediately

The main-menu Snapshot button opens the snapshot window in one click. Its existing viewer permission key is retained, so earlier scene settings still control access. The Snapshot submenu is removed. Crop remains open while selecting, applying or clearing, and retains its explicit close action.

Validation: actual Chromium editor/viewer tests cover notes denied by default, explicit notes permission, old scenes, independence from file-opening permission and saved warnings. Tests exercise inline naming, active scope, View switching, filtering, Enter/Escape, duplicate checks, source identity, save/reopen and mobile input styling; direct Snapshot capture and persistent cropping are exercised. Existing live camera/configuration continuity checks also passed.

v197

Naming, overlay locations and scale visibility

Naming menu

Names are saved in .pvdscene. Viewer renaming uses the existing Allow renaming title, configurations and components permission, retaining the legacy allow-edit-title key. With this permission, Naming is available independently of Export; saving still requires its own permission. Importing and editing do not rename original source files.

Viewport → Overlay locations

The layout leaves space for visible title/configuration fields and the local companion status. Overlapping title/configuration fields stack while preserving the configuration selector's chosen anchor. Overlay placement does not move or rotate the model. Choices are project-wide and saved with the viewport settings, including browser preferred presets. Portfolio embeds retain their existing hidden internal-title policy.

View → Side scale bar

Check or uncheck Side scale bar to show or hide the right-side engineering scale. This is independent of configuration changes and is saved with the scene and preferred viewport settings. Existing scenes default to a visible scale, Top-left menu, Bottom-left title and their previous Menu/Base configuration selection.

Validation: Chromium editor/viewer tests cover title/configuration/component renaming, duplicate-name rejection, immutable source identity, per-configuration aliases, scene roundtrip and viewer permissions. Layout tests cover four menu corners, all six title/configuration positions, inward scrolling panels at desktop/mobile widths, selector synchronization, unchanged camera transforms, scale persistence and old-file defaults.

v196

Transparent configuration field and persistent Snapshot Crop menu

Validation: actual Chromium tests in both editor and viewer compare title/configuration computed styles, verify menu order and legacy permissions, exercise fractional/negative padding and scene roundtrip, select/apply/clear a real crop without losing the menu, close it explicitly, enter/exit fullscreen through the new action menu, and inspect mobile layout.

v195

Component dragging, viewer setup and viewport framing

Drag one component in Explode

  1. Open Explode and enable Drag a component.
  2. Choose Viewing plane for free dragging parallel to the screen, or constrain movement along model X, Y or Z. Axis movement uses the drag's projection onto that axis; use a view where the axis is visible.
  3. Drag a visible component in the model. Every body in the same logical component moves together. Hidden geometry is not picked. Orbit is suspended while dragging, and restored when the pointer is released.
  4. Escape or a cancelled pointer restores the position before that move. Closing the Explode menu disables dragging. Automatic separation and manual movement compose without accumulating on repeated updates.
  5. Manual moves are independent per configuration and retained in the .pvdscene. Reassemble clears the active configuration's manual moves and automatic separation, restoring exact original positions. A single-body model can also be moved.

Import and Export menus

The former Project menu is split into two persistent left-docked menus:

Only one main menu is open at a time. Existing viewer file/title permissions remain authoritative: Allow opening files exposes Import; saving/title permissions expose the corresponding Export actions. Import notes are shown in the viewer only when Show import notes in viewer is enabled.

Viewer setup

In the editor, author presentation settings under Viewer setup:

Save the .pvdscene to publish these choices. The editor restores the saved authoring camera; the opening policy is applied when the viewer loads the scene.

Viewport menu

Viewport settings are project-wide, saved in .pvdscene, and do not change on configuration switches. Viewer authors can expose the Viewport menu through its menu permission. Native fullscreen remains borderless. The v194 complete-scale-label fix is retained.

New optional presentation metadata and manual explosion offsets require the matching v200 viewer to reproduce all behavior. Earlier v1/v2 scenes still open with as-saved camera, menu configurations and the original border defaults. Model origins are preserved through scene saves so origin-based explosion and opening views remain consistent.

Validation: Chromium editor/viewer tests cover real pointer dragging with transformed multi-body parents, constrained movement and Escape, single-body movement, repeated separation, configuration switches, exact save/reopen and reassembly, legacy permissions, preset storage, all opening modes, mobile menus/base selector and fit padding. Existing camera continuity, multi-file import/save/reopen and renderer-switch tests were exercised. Native SolidWorks/Windows execution remains a separate verification step.

v194

Complete right-side scale labels

The editor and viewer now measure the full scale labels and size their transparent ruler canvas accordingly. Previously its fixed 64-pixel width clipped leading digits and minus signs, so labels such as −400 mm could appear as just 0 mm.

Signed values, decimals and unit suffixes remain inside the ruler's drawing area as the scale changes during zooming and panning. The tick marks retain their position at the right edge. Labels have top/bottom safe margins to avoid the rounded viewport corners and consistent contrast; fine tick marks still fade at the edges. The overlay remains transparent to pointer input.

The canvas follows viewport size and display pixel density, including fullscreen and embedded viewers. No model coordinates, measurement values or scene file format are changed.

Validation: reproduced the old clipping, then checked complete text/halo bounds in the editor and viewer across desktop, portrait/landscape phone sizes, small/large coordinate scales, negative/decimal values, high pixel density, resizing and native fullscreen. Visual comparison confirms the complete numeric labels are now shown.

v193

Import model files as configurations

  1. Open Import → Import files as configurations.
  2. Choose Add to current project (default), or Start new project to replace the open project after all chosen files import successfully.
  3. For STL / OBJ, choose the coordinate units used by those files. Same as project coordinates keeps their numeric scale. GLB / glTF use meters; STEP / IGES output is converted from native units to meters automatically. Imported geometry is then scaled into the project coordinate units.
  4. Choose model files and select two or more together. Each file becomes a named configuration. You can add more files later, up to 256 total. Duplicate filenames receive a numeric suffix.
  5. Switch entries in Configurations. All retain their original origin and axis directions; the editor does not center each file individually. Camera orientation, pan, zoom and the origin's screen location carry across switches. Source files must already share the intended coordinate frame.
  6. Choose Export → Save options → Configurations → All configurations, then save the .pvdscene. It embeds the imported geometry, individual appearances, visibility and scene settings. The viewer needs no source files.

Supported formats: GLB, self-contained glTF, STL, OBJ, STEP / STP and IGES / IGS. For glTF with separate buffers or texture images, export a self-contained GLB first. OBJ uses the existing geometry loader; external MTL/texture files are not imported by this command. STEP / IGES use the existing browser CAD engine, downloaded on first use.

Appending: the open model/configurations, title, current view and edits are retained. An existing single model becomes the first configuration. New imports start with no explode or section cut; visibility and appearances remain separate. Existing material/lighting link overrides continue to apply where matching components are found. The Project panel remains open.

Failed imports: every file is parsed and checked before the batch is added. If one file fails, the current project remains and the submenu identifies the failed filename. New-project replacement happens only after successful parsing of every selected file.

Viewer permissions: importing is available only when opening files is permitted. Existing viewer configuration selection and the portable scene format are retained.

Validation: Chromium tests use real GLB, self-contained glTF, OBJ, STL, STEP and IGES geometry. Checks cover source scale, shared-origin/camera alignment, existing single/multiple projects, duplicate names, failure recovery, responsive docking, compressed scene save/reopen and viewer selection. The matching standalone launcher embeds the same editor and viewer. Native SolidWorks still requires Windows verification.

v192

Import assemblies containing master datum parts

A master part containing only planes, axes, sketches or other reference entities can legitimately return no solid/surface bodies. Earlier versions treated that empty list as a fatal error and stopped the whole assembly import. v200 skips that component and imports the remaining solid/surface geometry.

The importer first tries the combined component-body query, then separate solid and surface queries if the first returns nothing or fails. Retries use assembly-instance bodies, preserving assembly-specific geometry such as cuts; raw part-document bodies are not substituted. Duplicate body references are filtered. Empty subassemblies are also reported.

Import → Import notes identifies skipped components with their full assembly path, native configuration, display state, referenced configuration and file. The first 20 skipped component selections appear there; the complete list is written to the companion log. Counts reflect configuration/display-state selections, so a reference part can appear more than once.

Suppressed/hidden-component policy is unchanged. Unresolved documents, missing referenced configurations, body-query errors after the typed retries, and invalid tessellation still stop import. A selection with no exportable geometry still produces an explanatory error, rather than an empty .pvdscene. SolidWorks document configuration/display-state restoration remains in place.

Diagnostics: fatal export errors retain the component context and failing API before restoration runs. Cleanup calls such as Restore IModelDoc2.GraphicsRedraw2 no longer replace the causal export step in the diagnostic report. Failure details are reset for the next API request.

Install: extract and run the matching v200 PVD_SolidWorks_Editor.cmd. Its embedded C# bridge contains this fix. All v191 browser fixes are retained, and there is still one PVD_Portfolio_Instructions.html.

Validation: simulated SDK tests cover a planes/axes master part alongside valid geometry, null/empty lists, empty subassemblies, typed-query recovery/deduplication, strict unresolved/broken-reference/tessellation failures and configuration restoration. HTTP tests use real PowerShell with the simulated bridge. Actual SolidWorks COM remains a Windows verification step.

v191

Fine menu delay, renderer recovery, fullscreen and export-size details

View → Minimize delay

The slider ranges from 0.0 to 10.0 seconds in 0.1-second increments. Zero minimizes the idle rail immediately after you leave it. An open panel stays open until closed or replaced. Zero and fractional values are saved with the project and carried across configuration switches. Older delays above 10 seconds are clamped to 10.

GPU: keep the model when changing renderer

Renderer selection no longer reloads the page. Locally opened geometry, configurations, unsaved materials/visibility, camera, measurements and menu settings remain in the session. Auto uses stable WebGL. WebGPU remains experimental and depends on browser/hardware support.

A requested renderer is initialized and tested on the actual scene before its canvas replaces the working one. A failed change retains the previous renderer. Module and initialization waits are bounded. Runtime WebGPU render failures or device loss trigger recovery with WebGL. Recover with WebGL is also available in the GPU menu. If recovery cannot create a context, the scene stays available for saving and the GPU status explains the interruption. Changes do not navigate away or reopen the model file.

Fullscreen from portfolio cards

Entering fullscreen previously changed the gallery's width, causing its responsive renderer to close the card and unload the model. Model-card redraws are now deferred until the card closes, and auto-loading pauses while the card is open. Fullscreen transitions do not update the blog iframe's auto-height. The viewer fills the screen, updates the Full Screen / Exit Full Screen label, and resizes its renderer without fitting or resetting the view. Exiting returns to the same open card.

Both the blog's gallery iframe and nested model iframe must permit fullscreen. Use allow="fullscreen" allowfullscreen in the blog iframe block. Server Permissions-Policy or browser restrictions can still deny fullscreen; the viewer reports that denial while retaining the card and model.

Export → Save options: understand and measure size

The live summary reports selected/total configurations, included/total mesh bodies, omitted hidden bodies, included triangles, uncompressed geometry-buffer bytes and approximate source-detail bytes. These source totals are not the final .pvdscene size: container metadata and compression also contribute.

Expand What reduces file size? for the effect of each option. Compression is lossless. Current only omits other configuration/display-state entries. Excluding hidden components omits Off meshes while retaining transparent ones. Excluding source details removes physical-material XML/properties while retaining names and visual materials. These controls do not simplify the mesh; measurement geometry remains unchanged for included bodies.

Measure export size builds the selected export and compression without downloading it. The result reports exact packaged bytes, a readable KiB/MiB size, the uncompressed project size and compression reduction. Recalculate after model or option changes. Packaging a large assembly takes time and browser memory, just as saving does. Save shows the actual result as well. Keep a full source project to recover omitted data.

Validation: Chromium tests reproduce the v190 nested-card fullscreen teardown and verify preserved model/card through entry, exit and resizing. Renderer lifecycle tests use real WebGL rendering plus simulated WebGPU initialization, model-render and device-loss failures; local-file state survives changes and recovery. Tests cover 0/0.1/0.3-second timers, saved zero, size summaries and measured compression with no download. Native WebGPU device rendering still needs hardware/browser verification.

v190

Import performance, compact projects and simpler menus

SolidWorks import options

The display-state choices and hidden-geometry policy remain. Expand Import options / performance. Full detail keeps all source-reading options enabled. Faster import keeps rebuilding, lightweight resolution, tessellation reuse and source lights, while omitting physical-material details, face/feature appearances and source normals. Custom settings are also available.

Import → Import notes reports elapsed import time, configurations prepared, and faces sampled/reused. Import speed depends on the model, source tessellation and SolidWorks; no native hardware benchmark is claimed.

Reduce .pvdscene file size

In Export → Save options, choose all configurations or current only, lossless compression, whether to include hidden components, and whether to include source material details. Geometry and metadata exclusions affect the saved copy; they do not delete data from the open model.

The save result shows actual output size and the lossless compression reduction. Old uncompressed version-1/version-2 projects still open. Save choices and model unit scale are retained. Hidden states are captured for all saved configurations, including entries not visited before saving.

Menus and minimize delay

Full Screen, Snapshot and Info have visible labels. Component Visibility replaces Components. The GPU menu contains renderer selection and active-renderer status. Existing GPU permission keys remain supported.

Opening a menu replaces the previous panel. Viewport interaction, measuring and configuration changes keep the current panel open. In View → Minimize delay, set 0–10 seconds in 0.1-second increments (default 3). The delay controls the idle rail when no panel is open. Open panels remain open until closed or replaced. The delay is saved and carries across configuration switches.

One instructions file

PVD_Portfolio_Instructions.html is the only manual in the complete ZIP and standalone launcher. Its title, navigation and release section show v200. The catalog editor and Info menu link to this stable filename. Upload the six website files in README_v200.txt and preserve portfolio.json. Older version-named manual files may be removed from your web folder after updating existing bookmarks.

Validation: compiled bridge tests with simulated SDK objects check preparation/tessellation counts, per-state appearance reads, option-controlled work, lightweight rejection and restoration. Actual PowerShell HTTP tests check option forwarding and types. Chromium tests check compression, copy-only exclusions, generic model units, old/new project loads, menu labels, exclusive docking, responsive controls, and actual idle timers. Actual SolidWorks COM and Windows launcher execution still require Windows verification.

v189

Choose SolidWorks display states and hidden geometry

  1. Extract and run the matching PVD_SolidWorks_Editor.cmd. Choose a native file or Use active document.
  2. The import dialog groups display states under each configuration. The current display state of the active configuration starts selected. Select one or more states, or use Select all states / Clear states. The limit is 256 selected pairs.
  3. Exclude hidden components and bodies starts checked. Hidden geometry is physically omitted from the transfer; it cannot be revealed in the browser without reimporting.
  4. Uncheck it to include hidden geometry while retaining its initial Off state. Use Components → On to reveal it later. A hidden subassembly keeps its descendants off. Suppressed components are always excluded; open assemblies fully resolved with their referenced files available.
  5. Each pair appears as Configuration — Display state in the browser's Configurations menu. Geometry, sampled source appearances, lighting and visibility stay separate per pair. Existing material/lighting links can override the source values across pairs.
  6. Save a .pvdscene to retain every selected pair, source names, import policy and geometry, including included hidden bodies. Viewer visitors need no SolidWorks installation.

The exporter applies the selected state before reading geometry, checks the state has not changed during transfer, and attempts to restore each touched configuration's previous display state and the original active configuration/state after success or failure. It does not save the native document. Rebuilds may mark that document changed.

A selection with no exportable bodies stops the import with an explanatory error. Choose another state or include hidden geometry. Native procedural shaders, texture images, decals and RealView rendering remain outside the browser transfer.

Install: use the v200 launcher; an older companion cannot supply the new state list. Upload the six matching website files listed in README_v200.txt and preserve portfolio.json and your existing models.

Validation: compiled C# bridge tests use simulated SDK objects for part/assembly state switching, visibility, appearance sampling, suppression, shared states and restoration on failures. Browser tests cover multi-state selection, payloads, responsive controls, hidden components, save/reopen and viewer rendering. Actual SolidWorks COM execution requires a Windows check.

v188

Shuffle gallery cards

Shuffle: the compact crossed-arrows button directly left of New / Old randomizes cards across all years while retaining the category, search, year range and display settings. Click again for a fresh order. New / Old returns to chronological ordering.

Copy link to these cards: the stacked button beside the count keeps the current selection and settings, including the shuffled order, when the link is reopened.

v187

Visible, usable viewer permissions

In the model editor, open Viewer setup from the main menu, or select Project → Viewer permissions…. The checklist now has its own narrow docked panel. The old clipped scrolling box inside Project is removed. The panel has a visible scrollbar when needed; the checklist has no second, restricted-height scroll area.

Each permission has a clearly labeled, clickable checkbox row with checked-state highlighting and keyboard focus. Viewer menus and file/title permissions are grouped separately. All menus and Clear menus change only menu availability; file opening, saving and title editing remain individual choices. The enabled-menu count updates as you make changes.

Save the .pvdscene project to retain these permissions. Existing permission keys and defaults are retained, including existing scene files. The presentation viewer continues to enforce the saved choices and hides the editor-only Viewer setup panel. No model reimport is needed.

v186

Visible companion status and narrower menus

The launcher now stays visible. Run PVD_SolidWorks_Editor.cmd normally. A console titled PVD SolidWorks Companion v200 — RUNNING — PID … remains available in the taskbar while the local import service runs. Closing the browser alone leaves this companion running. Closing the named console ends its process.

Clean shutdown: use the persistent Stop button at the lower right of the local editor, or Import → Stop local companion. The editor reports Stopped — safe to start another version only after the service acknowledges shutdown and stops answering. The console changes to STOPPED and confirms that its local address was released. Press Enter to dismiss the stopped status window. Your browser scene and SolidWorks remain open.

Running another release: the new launcher identifies a PVD companion already using the address. It reuses a matching release or requests a graceful shutdown of a different PVD release, waits for the address to be released and starts this release. This also replaces the hidden companion left by v185. Unrelated applications are left untouched. If an older service is busy with SolidWorks and cannot answer, the launcher reports that condition instead of claiming it is closed; let that operation finish and retry.

Always-visible status: the local editor and viewer show Running with version/PID, Busy during a SolidWorks operation, or confirmed Stopped. An unacknowledged connection loss is shown as Offline / not responding. Hosted pages do not display this local control.

Narrower menus: the desktop rail is 112 px, ordinary panels are 280 px, Materials is a 370 px single column, and Components is a 390 px grid. Panels share the largest necessary dock width when several are open. Mobile panels are limited to the available viewport width. Existing persistent-menu behaviour and configuration view continuity are retained.

Install: extract the new standalone .cmd and run it to use these launcher changes. Website installations should upload the six matching website files in README_v200.txt. Model geometry does not need reimporting for these changes.

v185

Keep the model origin aligned when switching configurations

Changing configurations now preserves the current world-space view: camera position and orientation, up direction, perspective, zoom, pan/orbit target, rotation mode, speed and on/off state. The model origin and axes remain in the same screen location and orientation. A different bounding-box size or center no longer reframes the model, and an older saved view in the destination configuration no longer replaces the current view.

If automatic rotation is running, its current pivot is carried across the switch so a different configuration center does not cause a jump. Choosing a rotation center again explicitly uses the newly selected model's origin or center. Reset and standard-view commands still change the view when requested.

The active view is restored when reopening a .pvdscene project, including its up direction and rotation pivot. Existing projects remain readable. Materials, lighting, visibility, section/explode settings and measurements continue to restore from the chosen configuration. Open menus remain open. No SolidWorks reimport is needed for this change.

v184

Persistent menus and rotation centers

Consistent menu expansion: Components, Materials and Configurations now use the same disclosure and left dock as Style, View, Light, Measure and the other main menus. Configurations shows a visible list of names, with the active choice highlighted; the entire menu is hidden when fewer than two configurations are available.

Opened means open: viewport clicks, measuring, orbiting, changing configurations and minimizing the main rail keep docked menus open. Opening another menu replaces the previous docked panel. Close an individual panel with its × button or its main-menu heading. The View menu controls the idle rail delay (0–10 seconds in 0.1-second increments; default 3) when no panel is open.

Rotate about: choose Model origin, Model center or Viewport center. The first two use the model's world origin and un-exploded bounding-box center respectively. Viewport center retains the current camera target; pan to place the desired rotation center in the viewport. This sets the orbit center for automatic rotation. The active rotation mode and camera target are saved in .pvdscene projects and carried across configuration changes. Older projects default to Model center.

Compact selection link: the button beside the portfolio card count now reads Copy link / to cards in a smaller two-line field. Its full accessible label remains Copy link to these cards. URL restoration behaviour is unchanged.

Install: upload the six website files listed in README_v200.txt. The matching single-file SolidWorks launcher is included. Existing .pvdscene files remain supported; these menu fixes do not require reimporting model geometry.

v183

Configuration overrides, left menus, measurements and selection links

SolidWorks source defaults: import with the v200 launcher to bring each selected display state's available component/face appearances and document lights into its own browser configuration. Colour, transparency, shininess, specular intensity and emission are mapped to browser materials; physical material metadata is retained. Textures, procedural shaders, decals and HDR scene environments are not reproduced. Light colours, positions, direction, intensity, enabled state and camera/model locking are transferred; browser rendering remains an approximation.

Overrides: Materials → Override & link copies the active configuration’s appearances across matching components in every configuration. Exact body paths take priority; changed body names fall back to their component path. Subsequent material edits stay linked. Light → Override & link uses the editor lighting rig in all configurations, replacing source lights. Turning a link off keeps the last override and allows independent edits. Restore SolidWorks materials / lighting restores the preserved source values in all configurations and turns off that link. Visibility, camera and background remain independent. Saved .pvdscene files retain sources and overrides. Older scenes lacking source lights require reimport for those values.

Menus: the hamburger opens a vertical left rail. The active panel docks beside the rail, scrolls when needed and remains open until closed or replaced. An idle rail with no expanded panel auto-hides after the delay selected in View (default 3 seconds). Disable Auto-minimize in View to leave it open. Standard views have cube icons.

Measurements: diameter/radius use three separated points on a circular edge and also report circumference. Existing distance, angle, path, point and triangle tools remain; distance reports ΔX/ΔY/ΔZ. Area, volume and X/Y/Z bounding dimensions apply to a clicked component or the visible model. The Measure visible model button computes all three directly. Results use mm/mm²/mm³ or in/in²/in³ and survive saving.

Mesh limits: all geometric measurements are tessellation approximations. Circle fitting uses picked mesh positions, not native analytic edges. Volume is unavailable for open, degenerate or inconsistently oriented meshes. A closed topology check cannot detect every self-intersection. Body volumes and areas are summed; overlapping bodies are counted separately. Hidden bodies are excluded; section cuts do not trim measurement geometry. Bounds use world axes and the current exploded positions.

Copy link to these cards: the stacked button beside the card count copies a portfolio URL restoring category, search, year range, sort direction, tile aspect, ordering seed, batch and slideshow settings. It opens the gallery without starting a slideshow. Links work from the standalone gallery and the same-origin WordPress iframe. The selection follows these filters when the catalog later changes. Existing single-card links remain supported.

Install: upload the six website files listed in README_v200.txt. Keep portfolio.json unchanged. The launcher gracefully replaces an identified older PVD companion before starting v200; its standalone .cmd contains matching updated resources.

Current release · v200

Components, configuration links and a single-file SolidWorks launcher

Open file is now in Project, the last toolbar menu. Components controls visibility; Materials edits appearances.

Components and materials

In Components, set a body or parent group to On, Off or Transparent. Visibility is saved independently for each configuration. Transparent fades the display while preserving the underlying appearance. Hidden/suppressed bodies omitted by SolidWorks import cannot be made visible here.

Materials has two columns: material properties on the left, component selection on the right. With the panel open, click a visible component in the viewport to select it; Ctrl, Command or Shift toggles additional selections. A SolidWorks component includes all of its imported bodies. Dragging continues to orbit. Measurements and face-normal selection keep their gestures.

Link materials across configurations starts off. Enabling it copies current appearances to matching component paths and body names; subsequent edits, paste and restore follow those matches in either direction. Extra or ambiguous bodies are skipped. This links browser materials and appearances; source physical-material metadata remains read-only. Visibility stays independent.

Lighting

Link lighting across configurations in Light also starts off. Enabling it copies current lighting to all configurations, and future lighting edits, presets and resets stay shared. Background, camera, section and explode remain independent. Light has a separate close button. Both link settings persist in the saved .pvdscene.

Local import in one file

  1. Stop the previous companion from its Project menu, or close its console.
  2. Extract PVD_SolidWorks_Editor.cmd from the complete release ZIP. This file can run by itself, without the other release files beside it.
  3. Double-click it, or drag a .sldprt/.sldasm onto it. It unpacks its matching editor resources under local application data, starts the companion in the background, and opens the browser import dialog.
  4. Select the required configurations, import and save a portable .pvdscene.

Use Import → Stop local companion to end the background process without closing SolidWorks. Closing a browser tab alone leaves it running for the next import. Save your scene before closing the tab. Startup errors show a dialog with the log path; API errors retain Copy diagnostics.

No separate translator, administrator rights or browser extension is required. SolidWorks remains required for native import, and internet access is needed for Three.js modules. A website cannot launch Windows commands itself; the single launcher starts both native process and browser. The editor still runs in the browser. The redundant launcher aliases are removed; use PVD_SolidWorks_Editor.cmd.

The user confirmed v180 import works. Its typed COM connection and verified configuration switching are retained. Native CAD feature, dimension, mate and physical-material edits stay in SolidWorks. Reimport creates fresh scenes. Transfer limits for source appearances and physical properties remain unchanged.

Validation: configuration and browser tests cover picking, visibility/transparency, linking, permissions and project round trips. Local HTTP tests use actual PowerShell and the typed C# exporter with simulated SDK interfaces. Standalone payload extraction, path quoting and reuse are checked. Windows batch/console-window behaviour and actual SolidWorks still require a Windows check.

Deployment: upload the six website files in README_v200.txt to /Portfolio/. Keep .cmd launchers and the SolidWorks folder locally. Preserve portfolio.json.

v200 interface changes

Configurations expands into the left dock with a directly visible selection list and is hidden for files with zero or one configuration. Import warnings are available in Import → Import notes.

Components and Materials now list one row per component, omitting feature/body subrows. All bodies belonging to that component are selected or changed together. Components uses an aligned grid of On / Off / Transparent buttons, with the active state highlighted. Identical leaf names in separate subassemblies remain independent; their full paths are available in tooltips. A multi-body SolidWorks part uses the source document name as its single component row.

The rotation-speed slider has a visible center tick and 0 label where rotation stops. Material and lighting links and per-configuration visibility remain supported.

PVD_SolidWorks_Editor.cmd is now the only launcher. The old Open_SolidWorks_Editor.cmd was just a compatibility shortcut. A normal browser page cannot directly execute a Windows command; an installed application handler or extension would be required to launch from HTML. Use the single launcher to start the companion and HTML editor together.

Start here

Quick start — the five essential actions

Use this when you know what you want to change and need the shortest safe route.

01 · Open

Start in Home or Card Index

Open /Portfolio/portfolio_editor.php while signed into WordPress as an administrator. Home reports the current working catalog; Card Index finds cards.

02 · Locate

Filter once, then switch tabs

Use Search, Category and the two-ended Timeline below the top tabs. The chosen card and shared filter selection carry into Quick Image Framing, Quick Categories and Quick Links.

03 · Edit

Keep the media in view

Use the full card editor for fields and resources. For a batch of crops, use Quick Image Framing: adjust 4:3, square and 4:5 previews separately, and step to the next card.

04 · Protect

Preserve a working copy

In Backups & Saving, choose Export working copy for a local JSON or Save unfinished work to website for a private WordPress draft—even if validation reports issues.

05 · Publish

Save only when ready

Use the persistent Save Changes to Website control to publish the catalog. It updates portfolio.json, not PHP/HTML. Then verify the public gallery, using a hard refresh if cached.

Before installing any editor update: Export the unsaved working copy. A browser reload normally reads the published website catalog, not changes you made only in that browser tab.
Start here

File layout and what each file does

PathResponsibilityWhen it changes
/Portfolio/portfolio_editor.phpAdministrator-only WordPress editing UI; authenticated APIs for reading, publishing, private drafts and previous published versions.Software update
/Portfolio/portfolio.htmlPublic gallery: filters, responsive image cards, embedded live model viewers, details and slideshow.Software update
/Portfolio/PVD_Portfolio_Instructions.htmlThis self-contained manual, linked at the top of the editor; searchable index and print view.Software update
/Portfolio/portfolio.jsonLive content: cards, categories, settings, media URLs and framing. The editor publishes to this file.When you publish data; never overwrite it with a software ZIP.
/Portfolio/PVD_3D_Viewer.html3D model viewer embedded in gallery tiles, card details and slideshows; also works standalone.Included in every complete v200 software package; uses the same release version as the gallery and editor.

Why these roles are separate: content survives interface upgrades; the public gallery requires no administrator credentials; and the manual always has a stable URL.

Editor

Home — overview and data health

Home summarizes the editor’s current working catalog. It is not traffic analytics and is not necessarily the last-published website state.

Content metrics

Total cards; photograph and 3D model counts; category count; duplicate-media groups; year range; image records missing URLs.

Editing status

Selected card, unsaved-change indicator, and review indicators for missing media or article links. These help locate possible issues; they do not automatically delete or modify any card.

Use Edit current card or Quick Image Framing to continue without searching again.

Editor

New Card — create an image or solid-model entry

  1. Choose + New Card (first main editing action and persistent lower-right control).
  2. Enter the title and project year. Choose Image / drawing or Interactive 3D Model.
  3. For photographs, provide the optimized display image and full-resolution image. For 3D, enter the model file URL and viewer URL; a separate still thumbnail is optional.
  4. Review all three preview shapes, select categories and add related resources.
  5. Commit the draft to the working catalog, then save a private draft or export a local working copy before publishing.
Unfinished new-card drafts: A draft can exist before it has been added to the catalog. Use Export working copy or Save unfinished work to website to preserve it. A regular gallery publication requires the card to be committed first.
Editor

Card Index — find, inspect and edit

The index shows preview thumbnails, title/year/category context, Edit and Delete actions, and duplicate warnings. Use its shared Search, Category and Timeline filters rather than scrolling through the entire catalog.

Why: indexes should help you choose a card, not repeat every field from the full editor. Fine framing belongs in its dedicated workspace.

Editor

Quick Image Framing — primary image workflow

  1. Select Quick Image Framing.
  2. Use Start/Jump to Card or the shared filters, then Previous/Next to review adjacent matches.
  3. Work directly in the three side-by-side previews: Small 4:3, Medium 4:4, Large 4:5.
  4. Drag the image inside each preview to set the focal point. Move the Zoom slider directly beneath that preview; the valid range is 0.50×–3.00× in 0.01× steps.
  5. Continue to the next card; your changes remain in the working catalog until publication.

Each crop is independent

Zoom and position for 4:3 do not overwrite 4:4 or 4:5. A card can display in any of those shapes depending on gallery settings.

Photo versus model

Image framing sets the 2D thumbnail crop. Rotating, zooming or lighting an interactive 3D object belongs to the separate solid-model viewer and its camera settings.

Why there is no second framing panel: the three previews are the controls. Keeping sliders adjacent to their preview reduces hand/eye travel and accidental edits to the wrong aspect.

Editor

Quick Categories — batch classification

Use the shared toolbar to narrow the catalog, then Start editing here at the upper left to jump to the card you want. Edit category chips inline beside the card preview; the selected card also carries into other quick-edit tabs.

Categories must be defined in Categories and Order before assigning them to cards. Changing a category on one card is not a bulk change unless you explicitly choose a bulk operation.

Editor

Duplicates — compare and remove the correct card

  1. Open Duplicates. Entries are grouped by matching original media: source photograph or 3D model file.
  2. Look at the preview and highlighted differences: title, year, project URL, categories, tags, resource links, search terms and card ID.
  3. Choose the card you no longer need and click Delete this card directly on it.
  4. It disappears from the working duplicate index immediately. The operation does not open a Save As dialog.
  5. If you chose incorrectly, click Undo last deletion before leaving your review workflow.
Important: identical media does not necessarily mean the two projects are the same. Compare their article URLs and metadata. Duplicate removal does not delete the original media file. Undo covers the most recent duplicate deletion; use a separate working-copy export for longer sessions.

Why deletion does not immediately publish: review can involve many choices. Removing a card changes the current working copy; a single deliberate publish commits the full reviewed set to the website.

Editor

Categories, ordering and Gallery Settings

Categories and Order manages the authoritative set of category labels and their order. Gallery Settings controls default display order, aspect ratio, batch size, slideshow interval, automatic playback and whether hover labels appear.

A gallery setting is stored alongside the catalog in portfolio.json, so it becomes public only after Save Changes to Website. Reordering or filtering the editor workspace alone does not rearrange the stored catalog.

Safety & publishing

Backups & Saving — four operations, four consequences

ActionSaved where?Public gallery updated?Safe with validation issues?
Export working copyLocal JSON downloaded to your computer (includes unfinished card draft in the working-copy format)NoYes
Save unfinished work to websitePrivate WordPress draft associated with your administrator accountNoYes
Save Changes to WebsiteWrites /Portfolio/portfolio.json, retaining pre-publish historyYesEditor warns; proceeding can publish incomplete records
View / load previous website versionsReads private WordPress snapshot into the editorNo, not until you publishYes

What the status message means

Changes in editor · not published means this browser’s working catalog differs from the last known publication, or contains a new draft. No pending edits means no changes currently tracked by the editor. Exporting/downloading a JSON file does not clear unpublished status.

Safe recovery

  1. Export a working copy before installing new code or importing another catalog.
  2. To restore, use Import working copy or Restore website draft; this loads data into the editor, not the gallery.
  3. Review and verify the number of cards and the latest edited entries.
  4. Publish only after validation and review. If another administrator changed the live JSON in the meantime, the editor rejects overwriting it using the stored revision check.

Why: backup is about preserving data; publishing is about changing the live website. Keeping them separate prevents the loss of unsaved work.

Safety & publishing

Validation, errors and draft recovery

Photograph cards need valid display and full image URLs. 3D model cards instead need a valid model file and viewer URL; still-image thumbnails are optional. URL validation checks formatting, not whether the remote file successfully loads.

If validation reports an issue, you can still use Export working copy or Save unfinished work to website. Do not publish over a good catalog simply to save work for later.

If you see “invalid main image URL / invalid full image URL” for a model card, check whether its Media Type is set to Interactive 3D Model and the model URL is present. For a photo, supply verified image URLs.

Public gallery

Slideshow playback, screen modes and links

Start Slideshow from the gallery toolbar. The central stage takes precedence over the side controls. The left side gives project context and associated resources; the opposite side holds Previous/Next, speed, Play/Pause and Full screen/Window mode.

Switching between Window and Full screen retains the current slide. Previous and Next move among the currently filtered cards; navigation and closing return to the gallery without modifying card data. Interactive models load as model viewers rather than ordinary image tags.

Editor workflows

Card Add / Edit: two-column workspace

The editor keeps the image itself central. All existing inputs remain available, but are organized according to their task.

  1. Left column: image preview. Inspect the Small (4:3), Medium (4:4) and Large (4:5) live previews. Drag each preview to place its focal point.
  2. Left column: Card media. Choose Image / drawing or Interactive 3D model, specify media URLs, and review optional thumbnail and alt-text metadata. Model controls remain here.
  3. Left column: Image Framing. Select an aspect ratio, adjust magnification from 0.50× to 3.00×, change focal positioning, or reset the framing. Framing is independent for each ratio and the exposed image canvas remains transparent. The editor displays a small checkerboard pattern behind it to make this transparency visible; the pattern is never saved into your images.
  4. Right column, first: Title, year and project URL. Start by entering the reader-facing title, year, and original project article URL.
  5. Right column, second: Categories and Search. Assign categories, tags and additional search terms.
  6. Right column, third: Related articles and files. Add descriptive links to posts, drawings, models and other supporting material.
  7. Right column, fourth and last: ID and verification. Inspect the automatic, read-only Unique ID and verify the source relationship.

Saving drafts: Save Card + New Draft and Discard Draft sit immediately to the left of the persistent Add New Card and Save Changes to Website actions in the lower-right button row. Saving a card draft is different from publishing the catalog; publish only when ready.

Why this layout: imagery and its technical controls remain together, while the right-hand editorial sections stack vertically in one column and run from most commonly entered fields at the top to administrative metadata at the bottom. Duplicate deletion remains in the dedicated Duplicates tab.

Editor workflows

Framing below 1× and transparent canvas

Zoom ranges from 0.50× to 3.00× in each aspect ratio. At 1×, the photograph covers the frame. Below 1×, it is intentionally smaller than the full crop and transparent margins may appear. This is different from an automatic fit-to-fill operation: the photograph is not enlarged against your zoom choice.

Drag the photograph to position it within the full available preview area. The drag direction works when zoomed in or out. The subtle checkerboard in the editor identifies transparency; it is not part of the source image or saved JSON. The gallery leaves this exposed area transparent, so the surrounding page background may still be visible.

Each of Small 4:3, Medium 4:4 and Large 4:5 stores its own zoom and alignment. Drag and verify each before publishing. For a completely filled tile with no transparent space, choose 1× or greater.

3D models

v200: Build a scene with organized lighting and outward explode

Background is in View. Select a background preset or a custom color there. Background changes are independent of lighting presets and component materials.

Light: start with a look, then refine the shape

  1. Scene look: choose a complete starting rig, then adjust Exposure to control overall brightness. Reset to balanced studio restores a neutral starting point.
  2. Key light · shape: Strength controls the main light. Around model moves it horizontally; Height raises or lowers it. Use these to show curvature, edges and texture.
  3. Fill & reflections: Fill light opens dark areas. Reflections controls the studio environment, particularly visible on metals and polished surfaces.
  4. Ground shadow: enable the contact shadow, adjust its Strength and choose its Softness to ground the model in the scene.
Starting pointUse
Balanced studioBalanced fill and reflections with clear shape definition.
Soft productOpen, softer lighting for finishes, plastics and product details.
Bright presentationA bright, readable model with controlled reflections.
High contrastLow fill and strong side light for surface and shape definition.
Technical clarityEven fill and restrained reflections for engineering details.

Each preset sets a complete lighting rig: exposure, main light and direction, fill, reflections and ground-shadow settings. Refining an individual control changes Starting point to Custom. Lighting changes leave the selected background, component appearance, display style and camera alone. New projects save the lighting version; older reflection settings are converted from the former preset multipliers.

Explode: choose an origin and an outward pattern

Model origin is the default: parts spread outward from the imported model’s origin. Choose Assembly center if the imported origin is not a useful center for a presentation. Separation controls the amount; 0% restores every original local position exactly.

PatternBehavior
Radial outward · 3DSpreads bodies in their original outward directions; more distant bodies travel farther.
Planar fan · XY, XZ, YZSpreads in the selected plane.
Along X, Y, ZMoves each part away from the origin along one axis.
Spiral outwardAdds a tangential sweep to outward expansion.
Cylindrical · around YExpands around Y with a gentle vertical spread.
Diagonal / Four-way fanCreates deterministic presentation fans while retaining an outward component.
Ordered outward / LayersRanks parts on an axis and spreads them outward in stable order.

All patterns increase or preserve each body’s distance from the selected origin. Coincident and on-axis bodies receive deterministic fallback directions. Nested, rotated and nonuniformly scaled parents are handled in world space; repeated slider changes do not accumulate drift. Pattern, origin and separation are saved in the project, while the saved model geometry remains assembled. Exploded views keep shadows suppressed and restore the previous ground-shadow preference on reassembly.

Viewer file defaults

Opening a file in the presentation viewer enables Auto-minimize and starts the toolbar minimized when no menu is already open. This includes raw CAD/mesh files and .pvdscene projects with a saved off preference. The preference can be changed until another file is opened. The editor continues to restore its saved preference.

Card links and files

Solid-model cards no longer include Download original model file. A related link that duplicates the active model file is omitted too. Related links & files now appear inside a separately shaded group beneath the primary article, full-image and interactive-viewer actions. Share stays last. Photo cards use the same tonal resource grouping.

Validation: mathematical checks cover all 15 outward patterns, both origins, multiple amounts, deterministic order and no inward motion. Browser tests cover nested and nonuniform parent transforms, repeated slider changes, exact reassembly, shadow restoration, complete lighting presets and manual refinements, legacy lighting conversion, raw/project viewer defaults, and the card resource groups. Default WebGL and the WebGPU renderer’s WebGL backend are exercised. Card-menu checks also run in WebKit. Native WebGPU device rendering remains unverified after the previously documented headless device loss.

3D models

v200: Direct style selection, view aids and default minimization

Style now presents every display mode directly as a selectable row, without a nested Mode dropdown. A miniature graphic illustrates the surface or edge treatment. The selected row has a highlight and check mark.

SymbolDisplay mode
Shaded
Shaded + edges
Glass
HLV (hidden lines visible)
HLR (hidden lines removed)
Wireframe (mesh)
Edges only (CAD wire)
X-ray
Clay
Normals

Click a row to apply it. Keyboard users can focus the selected style and use the arrow keys to move through the choices; Home selects the first style and End selects the last. Glass shows its Transparency control below the list. The selected style remains saved in the portable project.

View now contains Origin axes and Ground grid. These controls no longer appear in Style. The GPU selector and active-backend indicator now sit after Rotate and before Reset in the expanded toolbar.

Auto-minimize toolbar starts enabled. This applies to a fresh application and to a project with no saved auto-minimize or older auto-hide preference. The editor preserves a saved explicit off value. The viewer enables auto-minimize whenever any model file opens, including projects saved with this setting off; you can turn it off for the current viewing session. The hamburger remains visible when the toolbar minimizes. All existing menu permissions and the viewer’s initially minimized toolbar are retained.

3D models

Section: back surfaces and body-matched caps

In the model editor or viewer, open Section, enable the cut, choose an axis and adjust Position or Reverse.

Cut displayResult
Back surfacesShows exposed inner and rear walls with the cut left open.
CappedFills closed section contours while preserving bores and cavities. Each cut face inherits its body’s active display material and appearance.

There is no separate cut-color control. Cut faces follow the component’s color, roughness, metalness, opacity and other material settings, as well as display-style changes. Original surface UV textures are not stretched onto the newly generated interior plane. The cap uses the first display material for a body with multiple material slots; vertex-colored bodies use the first vertex color as their uniform cut-face color.

Caps follow exploded and transformed components; hiding a component also hides its cap. Cap geometry stays outside the imported model tree and is not exported as additional bodies. Open or nonmanifold section contours remain unfilled and are reported in the Section menu. The geometry generator targets static CAD and mesh models.

The cut display mode is saved in .pvdscene. Older saved cut-color values are ignored. Section retains the saved viewer permissions.

Validation covers body-specific cap materials across display styles and appearance edits, section geometry, menu controls and project save/reload. The default WebGL renderer and the WebGPU renderer’s WebGL backend are tested; native WebGPU device validation remains unavailable after the headless device loss described in the previous release.

Maintenance

v172: Safari image display correction (retained)

Confirmed cause: the images downloaded successfully, but WebKit gave the gallery image link a height of zero. The link used height:100% inside an auto-height, aspect-ratio tile that was also a column flex item. Its absolutely positioned image inherited the zero-height drawing area.

Correction: the gallery media link now uses position:absolute; inset:0; width:auto; height:auto. The existing tile determines the aspect ratio and the media link fills its interior directly. This applies to photo and model cards and preserves the per-ratio crop, zoom, hover label and click behavior.

During investigation, the deployed v171 HTML matched the previous release byte for byte. In automated Linux WebKit tests of both the live WordPress embed and standalone gallery, all 33 photo images in the first 35-card batch had downloaded but displayed at 0px height. Applying this positioning correction restored nonzero image height for all 33. Automated WebKit is not a macOS or iOS Safari device test.

Regression checks: automated tests passed in WebKit, Chromium and Firefox for the initial photo batch, all four aspect choices, mobile/desktop resizing, categories, search, year filtering, sorting, image detail previews, slideshows, the next 70-photo batch, and recovery from a deliberately broken responsive source. The live 889-card catalog snapshot and real photo files were used. Model iframe documents were stubbed for these layout tests; the 3D runtime scripts are unchanged.

Install: upload this release into /Portfolio/, including portfolio.html and the single manual PVD_Portfolio_Instructions.html. Leave portfolio.json in place. To bypass an existing cached HTML response while checking deployment, open /Portfolio/portfolio.html?pvdRelease=172. In the page source, confirm data-pvd-release="172".

Maintenance

Install v200 safely

  1. In the current editor, use Backups & Saving → Export working copy if anything is unpublished.
  2. Keep a separate existing portfolio.json backup.
  3. Extract the complete v200 ZIP. Upload portfolio_editor.php, portfolio.html, PVD_Portfolio_Instructions.html to /Portfolio/.
  4. Upload both root-level PVD_3D_Editor.html and PVD_3D_Viewer.html to the /Portfolio/ directory on the website.
  5. Do not replace portfolio.json. It is the live card catalog, managed independently by the editor.
  6. Refresh the editor. Confirm the title shows v200, the catalog loads, and the Home metric count is plausible.
  7. Check an image framing preview, one model card, Quick Links and Duplicates, then confirm the public gallery and slideshow. Open Full Window Gallery and verify the return path and scrollbar.
  8. Restore any exported unfinished work through Import working copy if needed, then publish only after review.
Maintenance

Troubleshooting without risking the catalog

SymptomFirst checksSafe next step
Edits disappeared after reloadWas the private draft or working-copy JSON exported? A normal reload loads published data.Restore from Backups & Saving, verify card count, then publish if desired.
A model card has a blank viewVerify model file and viewer URLs. Try Test 3D model from the full editor; check file access and browser console errors.Keep card record; use optional still thumbnail until viewer loading is resolved.
Image unavailableVerify optimized and full image URLs, file permission and WordPress media links.Edit URL or upload a replacement; the card remains in the mosaic.
Save failed with revision conflictAnother session may have published a changed JSON.Export working copy, review newest website catalog and selectively restore edits.
Gallery looks outdated after uploadConfirm actual v200 filenames deployed; WordPress caches/CDN may serve older HTML.Hard refresh; verify iframe URL and file on server before changing data.
Opened card model looks tiny or clippedFirst check whether the dark viewer area fills its part of the popup. A full-size viewer showing a small object means the model camera, not the HTML layout, needs adjustment.Use the bundled v200 3D viewer camera/fit settings for the model; gallery v200 automatically uses the available visible browser area.
Slideshow model view is smallDistinguish the iframe viewport from the model’s camera framing.If viewport fills its stage, adjust camera or saved model appearance in the separate viewer.
Browser slows near many model cardsMultiple live 3D frames are GPU-heavy, especially on mobile.Prefer saved static thumbnails for very large catalogs; avoid multiple viewer tabs.
Maintenance

Why the interface is designed this way

Media first

Image proportions are fixed, crop controls sit under previews, and dialogs/slideshows give maximum area to photography and CAD.

One catalog, several views

All editor tabs update the same working records rather than maintaining separate competing copies of card data.

Deliberate publication

Export and drafts do not change the public gallery. Publishing checks the server revision and retains history.

Progressive rendering

Static photo tiles are cheap; interactive 3D tile viewers are loaded only near the current viewport. Detailed views and slideshows load the selected model.

The v200 complete release includes the gallery, editor, interactive 3D viewer and instructions with consistent release labels. 3D model tiles remove the redundant corner label and place a compact Open Card icon at the upper-right, styled like the viewer hamburger button. The viewer title sits closer to the lower-left edge, with the same transparent, white-on-clear styling as the minimized hamburger button, and remains editable. All downloaded files are in one folder; install the viewer directly in the /Portfolio/ directory. The editor retains the previous release's functions; the portfolio.json catalog remains untouched by software installation.

v200: 3D Editor and Viewer split

PVD_3D_Editor.html is the authoring workspace. Under Project, toggle each Viewer menu function before saving a .pvdscene. PVD_3D_Viewer.html is the presentation runtime: it loads the same scene and exposes only the functions enabled in that scene. Older .pvdscene files without menu permissions open with controls restricted by default. Install both HTML files directly in /Portfolio/.

v200: Viewer file permissions

In PVD_3D_Editor.html, open Project and set Viewer menu functions, including Allow opening files, Allow saving files, and Allow changing model title. Save the .pvdscene to persist these choices. The presentation viewer enforces the stored choices. Both HTML applications deploy directly in /Portfolio/.