DEMO
Let your customers design their perfect product in interactive 3D — pick materials, colors, and components, see every change instantly, and order exactly what they built. Every selection is saved to the WooCommerce order automatically, so your team always knows what to make.
Perfect for: furniture & upholstery, jewelry, footwear, apparel, signage, engraving, sports gear, packaging, and any product that comes in multiple finishes or configurations.
What it does for your store:
- Customers stop asking "can I get it in blue?" — they configure it themselves and see the result live
- Every option selection is stored on the order as a line item — your workshop or fulfillment team sees exactly what was chosen
- Per-option pricing — add a surcharge to premium finishes and watch the total update in real time as the customer selects
- Customers can share their exact configuration via a link, perfect for review-before-you-order workflows
- PDF download gives customers a record of what they ordered
Features:
- Real-time 3D product viewer — rotate, zoom, and see changes instantly
- Customization steps — organize options into labeled groups (e.g. Frame, Fabric, Legs) each targeting specific parts of the model
- Material swapping — assign a texture or base color to each option
- Geometry toggles — show or hide parts of the model based on selections (e.g. add a badge, swap a component)
- Step visibility — show or hide entire configuration steps based on what the customer has already selected
- Per-option price surcharge with live price display
- Undo / redo history
- Shareable configuration URL
- PDF preview download
- AR view on supported mobile devices
- HDR environment lighting and background color switcher
- Custom icons per step and per option
- Reusable texture library (Custom Post Type)
- Automatic step thumbnail generation (EXPERIMENTAL)
Technical:
- GLB / GLTF model format support
- PBR (Physically Based Rendering) material support — base color, roughness, normal, AO, metalness, and displacement maps
- Powered by Three.js (WebGL), bundled — no external CDN dependency
- Shortcode, Gutenberg block, action hook, and automatic placement support
- 18+ WordPress action hooks for developer extensibility
Free vs Premium:
The free version is fully functional for single-material customization. Premium unlocks advanced workflows and productivity features for studios managing large product catalogs.
Free
- Upload & display a 3D model
- Base color texture or color picker per option
- Roughness & metalness sliders
- Customization steps
- Viewer Only Mode
- Camera, zoom & background settings
- HDR environment map
- Undo / redo, PDF, AR view
- Set custom icons (images) for every step / options of a step
- Set additional prices per option
Premium (everything in Free, plus)
- Material Preview
- Multiple textures per option
- Bulk Add Materials to a step
- Show / Hide mesh controls per option
- Normal, AO, metalness & displacement maps
- Reflection intensity & displacement scale
- Hotspots/Annotations
- NEW — Usage Analytics — track customizer opens, option selections, and add-to-cart clicks per product (GDPR-friendly aggregate data, no personal information stored)
- NEW - Show / Hide steps based on the selected option
3.6.8
(Premium) Added Usage Analytics: track customizer opens, option selections, and add-to-cart clicks per product. GDPR-friendly aggregate data — no personal information stored.
3.6.4
Fixed customizerData already declared conflict. Manual hook now accepts product ID.
3.6.3
Shortcode now accepts product ID for use on any page. FSE block includes product search.
3.6.2
Fixed dismisable support notice and fixed unescaped chars
3.6.1
Added docs/support notice to admin
3.6.0
Added the posibility to set img as icons for steps / options
3.5.10
Zoom keyboard shortcuts now respect admin-set zoom limits. Options no longer force targeted meshes visible unless show is explicitly configured.
3.5.9
Added Demo, Docs, and Buy Premium links to the plugin row on the Plugins page.
3.5.8
Added per-option pricing with live front-end display and cart surcharge.
3.5.7
Maintenance release with bug fixes.
3.5.6
Plugin renamed to "3D Product Customizer & Configurator for WooCommerce"
3.5.5
Added 12 new translatable strings for the front-end configurator, improved rotation feel, and higher-resolution ground shadows.
3.5.4
Added per-product camera position controls in the admin 3D editor, with improved JSON save handling.
3.5.3
Fixed help modal layout issues on mobile Safari.
3.5.2
Code quality and security improvements: escaping fixes, nonce verification, and cart reliability.
3.5.1
Updated PDF generation with jsPDF, multi-angle captures, options summary, and footer links.
3.5.0
Fixed texture category filters, frontend material property parsing with valid zero values, and several code quality improvements.
3.4.7
Saved current config in the IndexedDB
3.4.6
Added indexDB texture cache
3.4.5
Added separate AR button with settings.
3.4.4
Improved Android AR View
3.4
Introduced FSE block and material caching in the frontend
3.2
Introduces material preview (premium) and color picker for materials with only a basic color
3.0
Introduces the Free/Premium tier. Existing installs retain all previously available features. Premium features require a license key activated via 3D Customizer → Account/Upgrade.
2.1
Security and stability fixes. Update recommended for all users.
3.7.4
Improved light when no HDR map is set in the settings
Renamed first sub item to Settings
3.7.3
- Added addon support — introduced
dprcu:cartUpdated DOM event and dprcu_customizer_config filter so third-party addons can extend the customizer without modifying the core bundle
- Fixed surcharge prices not being applied when a variation is added to cart — price lookup now uses internal option IDs instead of display names
- Fixed price display not appearing on simple products when the base product price is zero
- Enabled Freemius addon listings in the plugin dashboard
3.7.1
- (Premium) Add the ability to show / hide steps based on the user selection
- Fixed tracking events if the value did not change (for duplicate events)
- Added rate limit for tracking
- Added server side check if the analytics are disabled
- Fixed clear analytics data form
- Replaced checkbox array with Select2 input
3.7.0
- Auto-generated thumbnails for mobile step navigation buttons — each step icon is rendered directly from the 3D model, orbited to face the part with the rest of the model ghosted for context
- Fixed saving one settings tab resetting values from other tabs
- Display method option simplified to Automatic / Manual (removed redundant separate options)
3.6.9
- Restructured admin settings page using tabs
- Moved share and download PDF button to the customizer sidebar
- Added support for Express payment buttons (Apple Pay, Google Pay, PayPal, etc)
- Added help tab with usefull links
3.6.8
- (Premium) Added Usage Analytics — see how users interact with each product's 3D customizer
- Tracks customizer opens, option selections per step, and add-to-cart clicks
- GDPR-friendly by design: only aggregate counts stored, no personal data, no IP addresses, no cookies
- Per-product analytics metabox on the product edit screen with step breakdown tables and popularity bars
- Total analytics overview page under 3D Customizer → Analytics (opens, selections, cart rate across all products)
- Analytics toggle in Settings — disabling it hides the analytics page content and product metabox automatically
- Built-in consent manager integration: Cookiebot, CookieYes, or custom
window.dprcu_analytics_enabled = false override
- "Clear All Analytics Data" button added to the Settings page
3.6.7
- Improved parsing of texture array
- Improved mobile customizer style
3.6.6
3.6.5
- Updated presentation site url in the codebase
- Added guard to manual placement setting
- Fixed support notice not staying dismissed
3.6.4
- Fixed
customizerData already declared error on product pages when shortcode or FSE block is used
- Manual hook
dprcu_display_customizer now accepts an optional product ID argument
3.6.3
- Added product ID attribute to shortcode — use
[dprcu-customizer id="123"] on any page
- Added product search/select to the FSE block — pick any WooCommerce product from the sidebar
- Fixed FSE block not being clickable in the editor (added
useBlockProps)
3.6.2
- Fixed dismisable support notice
- Fixed encoding of special chars
3.6.1
- Added docs / support notice to admin
3.6.0
- Replaced Lucide icon picker with WordPress media library for step and option icon selection
- Added per-option icon image field — each option can have its own icon shown in geometry swatches
- Option icon now takes priority over texture thumbnail/color in material swatches when set
- Cached icon images in IndexedDB to avoid re-fetching on every session load
- Fixed Bulk Add Options not working — added missing bulk modal HTML and #tmpl-option template
- UI refactor
3.5.10
- Fixed zoom keyboard shortcuts (+/-) ignoring admin-set zoom limits (minDistance/maxDistance)
- Fixed option selection forcing targeted meshes visible when no show/hide configured
3.5.9
- Added Demo, Docs, and Buy Premium links to the plugin row on the Plugins page
- Regenerated pot file
- Fixed position of the additional price input in the ajax response
3.5.8
- Added per-option additional pricing — set a surcharge on any option within a step
- Live price display updates in real-time as the user selects different options
- Price badges shown on option swatches when a surcharge applies
- Option surcharge applied to cart total via WooCommerce before_calculate_totals
- Uses WooCommerce currency symbol and position settings
3.5.7
- Bug fixes and maintenance
3.5.6
- Renamed plugin to "3D Product Customizer & Configurator for WooCommerce" for better search visibility
- Updated plugin name references in watermarks, notices, and readme.txt
- Regenerated pot file
- Updated docs URL in the PDF
3.5.5
- Added 12 new i18n strings (adding, loading, PDF labels, alerts) — now translatable via
__() in PHP
- Disabled OrbitControls damping for instant rotation stop on release
- Removed stale CSS selectors from metabox-styles.css
- Fixed deprecated
THREE.WebGLShadowMap warning — switched to PCFShadowMap
- Increased shadow map resolution to 4096 and tightened shadow camera frustum for sharper ground shadows
3.5.4
- Added camera position/angle controls in admin 3D editor — save and reset the default camera view per product
- Fixed JSON corruption when saving camera position (
sanitize_text_field no longer destroys JSON data)
- Front-end 3D viewer now applies the saved per-product camera position on load
- Fixed garbled character encoding in the help modal close button
3.5.3
- Fixed help modal rendering on mobile Safari — GPU compositing, dynamic viewport height, touch event handling
- Removed nested
position: fixed on mobile modal to prevent layout issues
3.5.2
- Fixed all
_e() output to use proper escaping functions (esc_html_e, esc_attr_e)
- Added ABSPATH guard to block render file
- Removed UTF-8 BOM from main plugin file
- Added nonce verification to review notice dismissal
- Added nonce compliance annotations to add-to-cart handler
- Fixed undefined variable warnings in PDF download and background toggle
- Normalized IndexedDB config key across URL variants
- Improved add-to-cart AJAX — applies WooCommerce fragments directly and fires proper events
- Use WooCommerce
wc_ajax_url for add-to-cart requests (handles subdirectory installs)
- Replaced
filemtime() fallback with file_exists() check to suppress PHP warnings
- Fixed extra
> in checkbox HTML markup
3.5.1
- Switched PDF generation from pdf-lib to jsPDF for better clickable link support
- Renamed URL query parameter
cfg to dprcu_cfg to avoid conflicts
- Cleaned
dprcu_cfg parameter from the URL after configuration load
- Added multi-angle PDF captures with options summary page
- Added site logo, product name, timestamp, and URL to PDF output
- Added footer links (Plugin Page, Docs, Demo) to PDF pages
- Added option thumbnails and color swatches to the PDF options table
- Updated PDF column layout to full-width images proportional to canvas aspect ratio
3.5.0
- Fixed taxonomy slug in texture category filter dropdowns — categories now show up correctly in modals
- Fixed valid zero values (roughness 0.0, metalness 0.0, env intensity 0.0) being silently ignored on the frontend
- Fixed HTML validation: nonce field moved outside
<select> element in admin texture filter
- Fixed duplicate
get_post_meta() call in texture color swatch metabox
- Eliminated duplicate watermark rendering logic with a shared helper
- Added fallback version string for
filemtime() to prevent PHP warnings when assets are missing
- Updated texture caching to correctly query the
dprcu_texture_category taxonomy
3.4.8
Fixed the reset button
Fixed the position of the hotspots
3.4.7
Saved current config in the IndexedDB
3.4.6
Added indexDB cache for repeated loads
Added more debug to Android XR
3.4.5
Added separate AR button with settings.
3.4.4
Improved Android AR View
3.4.2
Added FSE block to bypass content wrapping.
3.4.1
Improved asset caching
3.4.0
- Added three display methods (Automatic, Shortcode, Manual Hook) for flexible customizer placement
- Implemented 18+ WordPress action hooks for developer extensibility
- Fixed wpautop filter interfering with shortcode output
- Added Global Settings page with display method selection
3.3
- Fixed premium notice css
- Added auto framing to the customizer
- Updated admin model scanner layout
3.2
- Introduced Material preview metabox for Premium
- Introduced color picker for materials with only basic colors
3.0
- Introduced Free vs Premium tier via Freemius licensing.
- Premium: multiple textures per option (free tier limited to one per option).
- Premium: Bulk Add Materials button in the product metabox.
- Premium: Show/Hide mesh controls per customization option.
- Premium: full PBR map set — normal, AO, metalness, and displacement map uploads.
- Premium: reflection intensity and displacement scale sliders on texture entries.
- Added custom isometric cube icon in the WordPress admin sidebar.
- Added persistent upgrade prompts comparing free and premium features.
- Freemius account menu integrated into the 3D Customizer admin menu.
2.1
- Added glass/transmission material support.
- Added bulk material assignment in the product metabox.
- Added drag-to-reorder for steps and options.
- Added geometry visibility (show/hide meshes) per option.
- Improved undo/redo history system.
- Performance: texture list now cached with a transient.
- Security: fixed text domain inconsistency across all files.
- Security: attachment IDs now sanitized with absint() instead of sanitize_text_field().
- Security: ABSPATH guard moved to top of plugin-settings.php.
- Security: all HTML attribute echoes in settings render callbacks now escaped with esc_attr().
2.0
- Multi-texture options: assign multiple textures to a single option card.
- New step/option data structure with explicit target meshes.
- Added HDR environment map setting.
- Added URL-based configuration sharing.
- Added AR export with QR code.
1.0