{"id":246197,"date":"2026-02-15T23:17:06","date_gmt":"2026-02-15T23:17:06","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/three-importer\/"},"modified":"2026-02-23T22:00:56","modified_gmt":"2026-02-23T22:00:56","slug":"three-importer","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/three-importer\/","author":23336476,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.5","stable_tag":"1.0.5","tested":"6.9.4","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Three Importer","header_author":"Bryce Callahan","header_description":"Create custom Three.js scenes via Block, Shortcode, or your own script.","assets_banners_color":"3d6e62","last_updated":"2026-02-23 22:00:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.brycecallahan.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":215,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"callahancodes","date":"2026-02-15 23:19:19"},"1.0.1":{"tag":"1.0.1","author":"callahancodes","date":"2026-02-17 04:41:28"},"1.0.2":{"tag":"1.0.2","author":"callahancodes","date":"2026-02-17 04:50:00"},"1.0.3":{"tag":"1.0.3","author":"callahancodes","date":"2026-02-17 15:57:15"},"1.0.4":{"tag":"1.0.4","author":"callahancodes","date":"2026-02-23 21:48:03"},"1.0.5":{"tag":"1.0.5","author":"callahancodes","date":"2026-02-23 22:00:56"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3462090,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3462090,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3462090,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"ti-blocks\/three-importer":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ti-blocks\/three-importer","version":"1.0.5","title":"Three Importer","category":"widgets","icon":"smiley","description":"Example block scaffolded with Create Block tool.","example":{},"attributes":{"attributes":{"inner_alignment":{"type":"string","default":"left"},"inner_vertical_alignment":{"type":"string","default":"top"}},"block_height":{"type":"string","default":"400px"},"geometry":{"type":"string","default":"box"},"geometry_color":{"type":"string","default":"#000000"},"geometry_size":{"type":"integer","default":1},"geometry_material":{"type":"string","default":"phong"},"geometry_xrotation":{"type":"string","default":"0"},"geometry_yrotation":{"type":"string","default":"0"},"geometry_zrotation":{"type":"string","default":"0"},"geometry_instancing":{"type":"boolean","default":false},"geometry_instancingnum":{"type":"string","default":"50"},"geometry_instancingspacing":{"type":"string","default":"1"},"gltf_url":{"type":"string","default":""},"trid_text":{"type":"string","default":"TI"},"trid_color":{"type":"string","default":"#FFFFFF"},"trid_size":{"type":"string","default":"1"},"light":{"type":"string","default":"ambient"},"light_color":{"type":"string","default":"#FFFFFF"},"light_intensity":{"type":"string","default":"1"},"light_xpos":{"type":"string","default":"0"},"light_ypos":{"type":"string","default":"0"},"light_zpos":{"type":"string","default":"0"},"light_helper":{"type":"boolean","default":false},"camera_xpos":{"type":"string","default":"5"},"camera_ypos":{"type":"string","default":"0"},"camera_zpos":{"type":"string","default":"0"},"camera_xtarget":{"type":"string","default":"0"},"camera_ytarget":{"type":"string","default":"0"},"camera_ztarget":{"type":"string","default":"0"},"camera_followmouse":{"type":"boolean","default":false},"scene_background":{"type":"string","default":"none"},"particle_amount":{"type":"string","default":"1000"},"particle_size":{"type":"string","default":"1"},"particle_speed":{"type":"string","default":"5"},"particle_direction":{"type":"string","default":"right"},"particle_color":{"type":"string","default":"#000000"},"particle_stretch":{"type":"string","default":"5"},"cubegrid_stretch":{"type":"string","default":"120"},"cubegrid_spacing":{"type":"integer","default":"1"},"cubegrid_material":{"type":"string","default":"phong"},"cubegrid_color":{"type":"string","default":"#FFFFFF"}},"supports":{"html":false,"innerBlocks":true,"align":["wide","full"],"spacing":{"padding":true,"margin":true},"color":{"background":true,"gradients":true},"typography":{"textAlign":true,"lineHeight":true,"fontSize":true},"layout":{"allowJustification":true,"allowOrientation":false}},"textdomain":"three-importer","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","render":"file:.\/render.php"}},"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3462090,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3462090,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3462090,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3462090,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3462090,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3462090,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Sample Page using Block","2":"Editor Page using Block","3":"Sample Page using [ti3d_scene] shortcode","4":"Editor Page using [ti3d_scene] shortcode","5":"Sample Page using [ti3d_sceneinject] shortcode","6":"Editor Page using [ti3d_sceneinject] shortcode"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[783,785,6305,809,805],"plugin_category":[50],"plugin_contributors":[255927],"plugin_business_model":[],"class_list":["post-246197","plugin","type-plugin","status-publish","hentry","plugin_tags-3d","plugin_tags-animation","plugin_tags-graphics","plugin_tags-threejs","plugin_tags-webgl","plugin_category-media","plugin_contributors-callahancodes","plugin_committers-callahancodes"],"banners":{"banner":"https:\/\/ps.w.org\/three-importer\/assets\/banner-772x250.png?rev=3462090","banner_2x":"https:\/\/ps.w.org\/three-importer\/assets\/banner-1544x500.png?rev=3462090","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/three-importer\/assets\/icon-256x256.png?rev=3462090","icon_2x":"https:\/\/ps.w.org\/three-importer\/assets\/icon-256x256.png?rev=3462090","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/three-importer\/assets\/screenshot-1.png?rev=3462090","caption":"Sample Page using Block"},{"src":"https:\/\/ps.w.org\/three-importer\/assets\/screenshot-2.png?rev=3462090","caption":"Editor Page using Block"},{"src":"https:\/\/ps.w.org\/three-importer\/assets\/screenshot-3.png?rev=3462090","caption":"Sample Page using [ti3d_scene] shortcode"},{"src":"https:\/\/ps.w.org\/three-importer\/assets\/screenshot-4.png?rev=3462090","caption":"Editor Page using [ti3d_scene] shortcode"},{"src":"https:\/\/ps.w.org\/three-importer\/assets\/screenshot-5.png?rev=3462090","caption":"Sample Page using [ti3d_sceneinject] shortcode"},{"src":"https:\/\/ps.w.org\/three-importer\/assets\/screenshot-6.png?rev=3462090","caption":"Editor Page using [ti3d_sceneinject] shortcode"}],"raw_content":"<!--section=description-->\n<p>Three Importer allows users to insert custom ThreeJS scenes which can be implemented via Block editor, shortcode, or custom script injection. This allows people with little-to-no coding experience to well-seasoned developers to create beautiful, 3D scenes with full control over the settings.<\/p>\n\n<p><strong>Block Support<\/strong>\nThree Importer has full support with the official WordPress Block Editor. Simply type and select \"\/Three Importer\" in your page editor and you'll see the 3D render notice for the public view.<\/p>\n\n<p><strong>Shortcode Support<\/strong>\nThree Importer allows the exact same functionality from blocks within the <code>[ti3d_scene]<\/code> shortcode. Developers can also use the <code>[ti3d_sceneinject]<\/code> shortcode to call project-specific libraries from THREE and use them within custom scripts.<\/p>\n\n<h3>Shortcode Parameters<\/h3>\n\n<h4>Geometry Settings<\/h4>\n\n<ul>\n<li><code>geometry<\/code> : Type of 3D shape (default: box).<\/li>\n<li><code>geometry_color<\/code> : Hex color code (default: #000000).<\/li>\n<li><code>geometry_material<\/code> : Three.js material type (default: basic).<\/li>\n<li><code>geometry_size<\/code> : Scaling factor (default: 1).<\/li>\n<li><code>geometry_xrotation<\/code> \/ <code>yrotation<\/code> \/ <code>zrotation<\/code> : Initial rotation.<\/li>\n<li><code>geometry_instancing<\/code> : Enable instanced rendering (default: false).<\/li>\n<li><code>geometry_instancingnum<\/code> : Total instances (default: 50).<\/li>\n<li><code>geometry_instancingspacing<\/code> : Gap between instances (default: 1).<\/li>\n<li><code>gltf_url<\/code> : URL for external GLTF\/GLB models.<\/li>\n<\/ul>\n\n<h4>Lighting Settings<\/h4>\n\n<ul>\n<li><code>light<\/code> : Light source type (default: ambient).<\/li>\n<li><code>light_color<\/code> : Color of the light (default: #ffffff).<\/li>\n<li><code>light_intensity<\/code> : Brightness (default: 1).<\/li>\n<li><code>light_xpos<\/code> \/ <code>ypos<\/code> \/ <code>zpos<\/code> : Light coordinates (default: 0).<\/li>\n<li><code>light_helper<\/code> : Toggle visual position guide (default: false).<\/li>\n<\/ul>\n\n<h4>Camera Settings<\/h4>\n\n<ul>\n<li><code>camera_xpos<\/code> \/ <code>ypos<\/code> \/ <code>zpos<\/code> : Camera coordinates.<\/li>\n<li><code>camera_xtarget<\/code> \/ <code>ytarget<\/code> \/ <code>ztarget<\/code> : Camera look-at target.<\/li>\n<li><code>camera_followmouse<\/code> : Enable mouse-tracking (default: false).<\/li>\n<\/ul>\n\n<h4>Particles &amp; Scene<\/h4>\n\n<ul>\n<li><code>scene_background<\/code> : Background color or transparency (default: none).<\/li>\n<li><code>particle_amount<\/code> : Total particles (default: 1000).<\/li>\n<li><code>particle_size<\/code> : Size of particles (default: 1).<\/li>\n<li><code>particle_speed<\/code> : Movement speed (default: 5).<\/li>\n<li><code>particle_direction<\/code> : Flow direction (default: right).<\/li>\n<li><code>particle_color<\/code> : Particle hex color (default: #000000).<\/li>\n<li><code>particle_stretch<\/code> : Motion stretch factor (default: 5).<\/li>\n<\/ul>\n\n<h4>Grid &amp; Text<\/h4>\n\n<ul>\n<li><code>cubegrid_stretch<\/code> : Grid stretch amount (default: 120).<\/li>\n<li><code>cubegrid_spacing<\/code> : Distance between grid cubes (default: 1).<\/li>\n<li><code>cubegrid_material<\/code> : Material for the grid (default: phong).<\/li>\n<li><code>cubegrid_color<\/code> : Grid hex color (default: #ffffff).<\/li>\n<li><code>trid_text<\/code> : String of text to render in 3D (default: TI).<\/li>\n<li><code>trid_color<\/code> : Color of 3D text (default: #ffffff).<\/li>\n<li><code>trid_size<\/code> : Depth\/Size of 3D text (default: 1).<\/li>\n<\/ul>\n\n<h3>[ti3d_sceneinject] Available Modules<\/h3>\n\n<ul>\n<li><strong>Controls:<\/strong> orbitcontrols, flycontrols, firstpersoncontrols, pointerlockcontrols, trackballcontrols<\/li>\n<li><strong>Loaders:<\/strong> gltfloader, objloader, fbxloader, textureloader, cubetextureloader, dracoloader, rgbeloader<\/li>\n<li><strong>Post-Processing:<\/strong> effectcomposer, renderpass, unrealbloompass, shaderpass, ssaopass<\/li>\n<li><strong>Shaders:<\/strong> fxaashader, copyshader, luminosityshader, sobeloperatorshader<\/li>\n<li><strong>Geometry:<\/strong> boxlinegeometry, convexgeometry, parametricgeometry, teapotgeometry<\/li>\n<li><strong>Helpers:<\/strong> gridhelper, axeshelper, camerahelper, directionallighthelper<\/li>\n<li><strong>Misc:<\/strong> animationmixer, gui<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Download the ZIP folder from the repository.<\/li>\n<li>In your WordPress dashboard, go to Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Select the ZIP folder and click Install Now.<\/li>\n<li>Activate the plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20cant%20i%20see%20my%20geometry%3F\"><h3>Why cant I see my Geometry?<\/h3><\/dt>\n<dd><p>Check your Camera Position, Geometry Position, or Geometry Rotation. Ensure the camera position isn't inside the mesh position.<\/p><\/dd>\n<dt id=\"why%20are%20multiple%20instances%20of%20three%20being%20imported%3F\"><h3>Why are multiple instances of THREE being imported?<\/h3><\/dt>\n<dd><p>This happens when using multiple TI implementations. Stick to using just blocks or either shortcodes on a single page (avoid mixmatching both TI blocks and TI shortcodes on a single page). This warning shouldn't break anything, as it's just a warning, but will slow that page's loading speed.<\/p><\/dd>\n<dt id=\"how%20can%20i%20use%20the%20custom%20scene%20inject%20function%3F\"><h3>How can I use the custom scene inject function?<\/h3><\/dt>\n<dd><p>Place the shortcode <code>[ti3d_sceneinject module1 module2 ...]<\/code>, then add the TI id to a div and your script in a Custom HTML block.<\/p>\n\n<pre><code>[ti3d_sceneinject orbitcontrols axeshelper]\n<\/code><\/pre>\n\n<p>Example Script:<\/p>\n\n<pre><code>&lt;div class=\"three-importer-container\" id=\"ti\"&gt;&lt;\/div&gt;\n&lt;script&gt;\ndocument.addEventListener('three-modules-ready', () =&gt; {\n    const scene = new THREE.Scene();\n    const container = document.getElementById('ti');\n    const width = container.clientWidth;\n    const height = container.clientHeight;\n\n    const camera = new THREE.PerspectiveCamera(75, width \/ height, 0.1, 1000);\n    camera.position.z = 5;\n\n    const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\n    renderer.setSize(width, height);\n    container.appendChild(renderer.domElement);\n\n    const geometry = new THREE.BoxGeometry(2, 2, 2);\n    const material = new THREE.MeshNormalMaterial();\n    const cube = new THREE.Mesh(geometry, material);\n    scene.add(cube);\n\n    if (THREE.AxesHelper) {\n        const axesHelper = new THREE.AxesHelper(3);\n        scene.add(axesHelper);\n    }\n\n    let controls;\n    if (THREE.OrbitControls) {\n        controls = new THREE.OrbitControls(camera, renderer.domElement);\n    }\n\n    function animate() {\n        requestAnimationFrame(animate);\n        cube.rotation.x += 0.01;\n        cube.rotation.y += 0.01;\n        if (controls) controls.update();\n        renderer.render(scene, camera);\n    }\n\n    animate();\n});\n&lt;\/script&gt;\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial Release.<\/li>\n<\/ul>","raw_excerpt":"A powerful ThreeJS WordPress plugin for creating 3D scenes via blocks, shortcodes, or custom script injection.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/246197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=246197"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/callahancodes"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=246197"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=246197"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=246197"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=246197"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=246197"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=246197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}