0+
June 29, 2026
April 17, 2026
Let customers build their perfect product in 3D — swap materials, hide parts, and share their design. Powered by Three.js, built for WooCommerce.
Key features:
Free vs Premium:
The free version is fully functional for single-material customization. Premium unlocks advanced PBR workflows and productivity features for studios managing large product catalogs.
Alternatively, click the Upgrade to Premium button that appears inside any locked premium feature panel.
All source code is human-readable and included in this plugin.
The /js/ folder contains the original, uncompiled JavaScript source files:
customizer.js — Main 3D configurator frontend logicmodel-scanner.js — 3D model mesh detection and analysismaterial-preview.js — Material preview renderingui.js — UI state management and interactions/admin/js/ — Dashboard-specific functionalityThe /dist/ folder contains pre-compiled, production-ready bundles. These are generated by bundling the source files with their dependencies (three.js, pdf-lib, lucide) using Webpack. The /dist/ folder is auto-generated output and not part of the source code.
Rebuilding from Source:
This plugin uses Webpack to compile and minify JavaScript, bundling dependencies to keep the plugin size manageable (avoiding the need to distribute node_modules).
Requirements:
Build commands:
npm install # Install dependencies from package.json
npm run dev # Development build with watch mode (rebuilds on file changes)
npm run build # Production build (minified and optimized)
Dependencies:
All original code is GPLv2 or later. Third-party dependencies follow their respective open-source licenses, listed in package.json.
This plugin integrates with Freemius for license management, automatic updates, and premium feature delivery:
All other assets (JavaScript, CSS, images) are included locally within the plugin package. No other external services are used.
Development: deosebIT Soft
This plugin was developed with attention to WordPress.org standards and is maintained by the deosebIT Soft team. For support, updates, and premium features, visit our website.
The 3D Customizer provides three flexible ways to display the customizer on your product pages:
1. Automatic Display (Default)
The customizer is automatically displayed before the product summary.
Setting: 3D Customizer Global Settings Display Method “Automatic (before product summary)”
No code required — it just works!
2. Block (Gutenberg)
Setting: 3D Customizer Global Settings Display Method “Manual Placement”
In FSE themes (Gutenberg) you can use the block 3D Product Customizer
3. Shortcode Display
Display the customizer anywhere using the [dprcu-customizer] shortcode.
Setting: 3D Customizer Global Settings Display Method “Manual Placement”
Usage:
[dprcu-customizer] — uses the current product
[dprcu-customizer id="123"] — uses a specific product ID
Perfect for custom layouts and page builders (Elementor, Divi, etc.)
4. Manual Hook Display
Display the customizer using the dprcu_display_customizer action hook.
Setting: 3D Customizer Global Settings Display Method “Manual Hook”
Usage in your theme template:
php
<?php do_action( 'dprcu_display_customizer' ); ?> <!-- on a product page -->
<?php do_action( 'dprcu_display_customizer', 123 ); ?> <!-- on any page with a specific product ID -->
Developer Hooks
The plugin provides 18+ action hooks for extending functionality. Common hooks include:
dprcu_before_customizer_output — Before the customizer rendersdprcu_before_canvas_container — Before the 3D canvasdprcu_before_sidebar_container — Before the sidebardprcu_display_customizer — Manual display hook (see Display Methods above)For the complete list of hooks, see the Documentation
product-customizer folder to /wp-content/plugins/..glb / .gltf model using the Select Model button.GLB (binary GLTF) is the recommended format. GLTF (JSON-based) is also supported. The plugin registers these MIME types with WordPress so they can be uploaded through the standard Media Library.
The HDR environment map is a global setting. All products share the same HDR file. Per-product HDR support is planned for a future release.
The configurator only renders when the product has a valid .glb model URL AND at least one configured step with at least one option. Check the 3D Configurator metabox on the product.
When a customer clicks Add to cart, the current configuration is sent as a JSON payload. Each selected option (part material name) is stored as a WooCommerce line-item meta entry and is visible on the order detail and in emails.
The plugin targets simple products. Variable product support is not officially tested.
Yes. The source files are included in the js/ directory and the webpack.config.js build configuration is included in the plugin package.
customizerData already declared error on product pages when shortcode or FSE block is useddprcu_display_customizer now accepts an optional product ID argument[dprcu-customizer id="123"] on any pageuseBlockProps)__() in PHPTHREE.WebGLShadowMap warning — switched to PCFShadowMapsanitize_text_field no longer destroys JSON data)position: fixed on mobile modal to prevent layout issues_e() output to use proper escaping functions (esc_html_e, esc_attr_e)wc_ajax_url for add-to-cart requests (handles subdirectory installs)filemtime() fallback with file_exists() check to suppress PHP warnings> in checkbox HTML markupcfg to dprcu_cfg to avoid conflictsdprcu_cfg parameter from the URL after configuration load<select> element in admin texture filterget_post_meta() call in texture color swatch metaboxfilemtime() to prevent PHP warnings when assets are missingdprcu_texture_category taxonomyFixed the reset button
Fixed the position of the hotspots
Saved current config in the IndexedDB
Added indexDB cache for repeated loads
Added more debug to Android XR
Added separate AR button with settings.
Improved Android AR View
Added FSE block to bypass content wrapping.
Improved asset caching
| Version | Download | Type |
|---|---|---|
| 3.6.7 | Download | Stable |
| 3.6.6 | Download | Stable |
| 3.6.4 | Download | Stable |
| 3.6.3 | Download | Stable |
| 3.6.2 | Download | Stable |
| 3.6.1 | Download | Stable |
| 3.6.0 | Download | Stable |
| 3.5.9 | Download | Stable |
| 3.5.8 | Download | Stable |
| 3.5.7 | Download | Stable |
| 3.5.6 | Download | Stable |
| 3.5.5 | Download | Stable |
| 3.5.4 | Download | Stable |
| 3.5.3 | Download | Stable |
| 3.5.2 | Download | Stable |
| 3.5.1 | Download | Stable |
| 3.5.0 | Download | Stable |
| 3.4.8 | Download | Stable |
| 3.4.6 | Download | Stable |
| 3.4.5 | Download | Stable |
| 3.4.4 | Download | Stable |
| 3.4.3 | Download | Stable |
| 3.4.1 | Download | Stable |
| 3.4.0 | Download | Stable |
| 3.3.4 | Download | Stable |
| 3.3.3 | Download | Stable |
| 3.3.2 | Download | Stable |
| 3.3.1 | Download | Stable |
| 3.3 | Download | Stable |
| Development | Download | Trunk |