{"id":361422,"date":"2026-09-04T09:48:48","date_gmt":"2026-09-04T09:48:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/comnoira-3d-viewer\/"},"modified":"2026-09-04T09:48:36","modified_gmt":"2026-09-04T09:48:36","slug":"comnoira-3d-viewer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/comnoira-3d-viewer\/","author":23557806,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.2","stable_tag":"0.5.2","tested":"7.1","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Comnoira 3D Viewer","header_author":"Comnoira","header_description":"Show an interactive Comnoira 3D Showcase on any page with a Gutenberg block \u2014 no code required.","assets_banners_color":"","last_updated":"2026-09-04 09:48:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/comnoira.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.2":{"tag":"0.5.2","author":"comnoira","date":"2026-09-04 09:48:36","revision":3680989}},"upgrade_notice":{"0.5.2":"<p>Fixes Showcase sessions failing to start. Update recommended for all users.<\/p>","0.5.1":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"comnoira\/viewer":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"comnoira\/viewer","title":"Comnoira Showcase","category":"embed","icon":"camera","description":"Show an interactive Comnoira Showcase on this page.","textdomain":"comnoira-3d-viewer","attributes":{"embedReference":{"type":"number","default":0},"width":{"type":"string","default":"100%"},"height":{"type":"string","default":"500px"},"autoRotate":{"type":"boolean","default":false},"advancedOptionsJson":{"type":"string","default":""}},"supports":{"html":false},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["0.5.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3680986,"resolution":"1","location":"assets","locale":"","width":1917,"height":931},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3680986,"resolution":"2","location":"assets","locale":"","width":1920,"height":929},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3680986,"resolution":"3","location":"assets","locale":"","width":1919,"height":931},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3680986,"resolution":"4","location":"assets","locale":"","width":1908,"height":961}},"screenshots":{"1":"The Comnoira \u2192 Connection screen, showing the setup checklist and\nconnection status.","2":"Registering a Showcase under Comnoira \u2192 Showcases, with the Test Connection\nbutton.","3":"The Comnoira Showcase block in the block editor, with the Showcase picker in\nthe sidebar.","4":"A live Showcase rendered on a published page."}},"plugin_section":[],"plugin_tags":[783,230,148076,1116,747],"plugin_category":[50,56],"plugin_contributors":[279140],"plugin_business_model":[],"class_list":["post-361422","plugin","type-plugin","status-publish","hentry","plugin_tags-3d","plugin_tags-embed","plugin_tags-gutenberg","plugin_tags-showcase","plugin_tags-viewer","plugin_category-media","plugin_category-social-and-sharing","plugin_contributors-comnoira","plugin_committers-comnoira"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/comnoira-3d-viewer.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/comnoira-3d-viewer\/assets\/screenshot-1.png?rev=3680986","caption":"The Comnoira \u2192 Connection screen, showing the setup checklist and\nconnection status."},{"src":"https:\/\/ps.w.org\/comnoira-3d-viewer\/assets\/screenshot-2.png?rev=3680986","caption":"Registering a Showcase under Comnoira \u2192 Showcases, with the Test Connection\nbutton."},{"src":"https:\/\/ps.w.org\/comnoira-3d-viewer\/assets\/screenshot-3.png?rev=3680986","caption":"The Comnoira Showcase block in the block editor, with the Showcase picker in\nthe sidebar."},{"src":"https:\/\/ps.w.org\/comnoira-3d-viewer\/assets\/screenshot-4.png?rev=3680986","caption":"A live Showcase rendered on a published page."}],"raw_content":"<!--section=description-->\n<p>Comnoira 3D Viewer connects your site to your Comnoira account and lets\nyou place a working, interactive 3D Showcase on any page using a Gutenberg\nblock \u2014 no code, no hand-written snippet.<\/p>\n\n<h4>Requires a Comnoira account<\/h4>\n\n<p>This plugin is a client for <a href=\"https:\/\/comnoira.com\">Comnoira<\/a>'s own 3D\nviewing service. You'll need a Comnoira account with at least one published\nComnoira Asset to showcase. The plugin does not bundle any 3D viewer code\nitself \u2014 it loads the viewer from Comnoira's CDN at runtime and\ncommunicates with Comnoira's API using a License Key you generate from\nyour own Comnoira dashboard.<\/p>\n\n<h4>What this plugin does<\/h4>\n\n<ul>\n<li>Securely stores your Comnoira License Key on your own server (encrypted\nat rest) \u2014 it is never sent to a visitor's browser.<\/li>\n<li>Lets you register one or more Showcases under Comnoira \u2192 Showcases, each one\nreferencing a specific Comnoira Asset.<\/li>\n<li>Adds a \"Comnoira Showcase\" Gutenberg block so you can place a registered\nShowcase on any page or post, with basic display options (width, height,\nauto-rotate).<\/li>\n<li>Lets you test whether a Showcase's credentials actually work, right from\nthe WordPress admin, before you ever load the real page.<\/li>\n<\/ul>\n\n<h4>What this plugin does not do<\/h4>\n\n<ul>\n<li>It does not host or process 3D models itself \u2014 that happens entirely on\nComnoira's platform.<\/li>\n<li>It does not do anything useful without a Comnoira account and at least\none Showcase registered on your Comnoira dashboard first.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin is a client for Comnoira (https:\/\/comnoira.com), the 3D\nhosting and viewing service your registered Showcases' assets live on. It\ndoes not work without a Comnoira account, and every network request it\nmakes is to Comnoira's own API and viewer, at your explicit action \u2014 there\nis no third-party analytics, ad, or tracking service involved.<\/p>\n\n<ul>\n<li>Registering a Showcase or clicking \"Test Connection\" in the admin sends\nyour stored License Key and the Showcase's Embed ID \/ Public Key to\nComnoira's API (https:\/\/api.comnoira.com), to verify they're valid.<\/li>\n<li>When a visitor loads a page containing a Comnoira Showcase block, your\nWordPress server sends that Showcase's Embed ID and Public Key (plus\nyour License Key, never sent to the visitor) to Comnoira's API to mint a\nshort-lived viewer session for that page load.<\/li>\n<li>The visitor's browser then exchanges that short-lived session token \u2014\nnever the License Key itself \u2014 directly with Comnoira's viewer service\n(https:\/\/viewer.comnoira.com) to load and display the 3D model.<\/li>\n<\/ul>\n\n<p>No visitor personal data (name, email, IP address) is collected or sent\nby this plugin itself.<\/p>\n\n<p>This service is provided by Comnoira: <a href=\"https:\/\/comnoira.com\/terms\">Terms of Service<\/a>,\n<a href=\"https:\/\/comnoira.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Comnoira \u2192 Connection<\/strong> and paste the License Key from your\nComnoira dashboard.<\/li>\n<li>Go to <strong>Comnoira \u2192 Showcases<\/strong> and register at least one Showcase \u2014 you'll\nneed the Embed ID and Public Key from your Comnoira dashboard's Showcase\ndetail page. Use the \"Test Connection\" button to confirm it's working\nbefore moving on.<\/li>\n<li>Edit any page or post, add the <strong>Comnoira Showcase<\/strong> block, and pick your\nregistered Showcase from the block's sidebar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20comnoira%20account%3F\"><h3>Do I need a Comnoira account?<\/h3><\/dt>\n<dd><p>Yes. This plugin is a WordPress client for Comnoira's own service \u2014 it has\nnothing to display until you connect a real Comnoira account with at least\none published asset.<\/p><\/dd>\n<dt id=\"is%20my%20license%20key%20ever%20sent%20to%20a%20visitor%27s%20browser%3F\"><h3>Is my License Key ever sent to a visitor's browser?<\/h3><\/dt>\n<dd><p>No. The License Key is stored encrypted on your own server and used only\nin server-to-server requests this plugin makes on your behalf. A visitor's\nbrowser only ever receives a short-lived session token, never the License\nKey itself.<\/p><\/dd>\n<dt id=\"why%20do%20i%20have%20to%20register%20each%20showcase%20manually%20instead%20of%20it%20showing%20up%20automatically%3F\"><h3>Why do I have to register each Showcase manually instead of it showing up automatically?<\/h3><\/dt>\n<dd><p>Comnoira's API doesn't currently expose a way to list all of a shop's\nShowcases using just a License Key, so this plugin keeps its own local\nregistry \u2014 you copy the Embed ID and Public Key from your Comnoira\ndashboard once per Showcase, and the plugin remembers it from then on.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20any%20wordpress%20theme%3F\"><h3>Does this work with any WordPress theme?<\/h3><\/dt>\n<dd><p>The Gutenberg block renders a plain container sized to the width\/height\nyou set \u2014 it doesn't depend on theme-specific styling, so it should work\nwith any block-editor-compatible theme.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20the%20source%20code%20for%20the%20gutenberg%20block%3F\"><h3>Where can I find the source code for the Gutenberg block?<\/h3><\/dt>\n<dd><p>The uncompiled JavaScript source is included in this plugin's <code>blocks\/<\/code>\ndirectory. The <code>build\/<\/code> directory holds the compiled, minified version\nthat WordPress actually loads \u2014 <code>build\/<\/code> is generated from <code>blocks\/<\/code> via\n    npm run build (<code>@wordpress\/scripts<\/code>).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.2<\/h4>\n\n<ul>\n<li>Fixed session creation failing after Comnoira's backend renamed its API\nfield for identifying a Showcase. No changes needed on your part.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>First public release. Connect a Comnoira account, register Showcases, test\nthem from the admin, and place a live 3D Showcase on any page with a\nGutenberg block.<\/li>\n<\/ul>","raw_excerpt":"Show an interactive Comnoira 3D Showcase on any page with a Gutenberg block \u2014 no code required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=361422"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/comnoira"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361422"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361422"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361422"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361422"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361422"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}