=== StorySplat – 3D Gaussian Splatting Viewer ===
Contributors: storysplat
Tags: 3d, gaussian splatting, virtual tour, embed, webgl
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Embed interactive 3D Gaussian Splatting scenes and guided tours in WordPress with a simple shortcode or block. Virtual tours, galleries, and more.

== Description ==

StorySplat lets you embed stunning interactive 3D Gaussian Splatting scenes directly into your WordPress posts and pages. Create immersive experiences for your visitors with guided tours, audio narration, interactive hotspots, and full 3D navigation — no coding required.

Scenes are created and published with the free editor at [storysplat.com](https://storysplat.com), then embedded on your site with a shortcode or a Gutenberg block.

= Features =

* **Simple Shortcode** — embed scenes with just `[storysplat scene="YOUR_SCENE_ID"]`
* **Gutenberg Block** — search for "StorySplat" in the block inserter, paste your scene ID, done
* **Responsive** — works beautifully on desktop, tablet, and mobile
* **Guided Tours** — waypoints, audio narration, hotspots, and autoplay travel with the scene
* **Lazy Loading** — optionally defer loading until the scene scrolls into view
* **Privacy Control** — per-embed option to disable view analytics
* **Always Up To Date** — scenes update automatically when you edit them in StorySplat; no need to touch your WordPress site

= What is Gaussian Splatting? =

Gaussian Splatting is a cutting-edge 3D capture technology that creates photorealistic representations of real-world spaces and objects. Unlike traditional 3D models, Gaussian Splats capture scenes with incredible detail and render smoothly in any modern web browser.

= Use Cases =

* Real estate virtual tours
* Architecture and interior design showcases
* Museum and gallery exhibits
* Product visualization
* Educational content
* Travel and tourism experiences

= Getting Started =

1. Create your 3D scene at [storysplat.com](https://storysplat.com)
2. Publish your scene and copy the Scene ID
3. Add the shortcode or the StorySplat block to your page
4. Done! Your visitors can now explore your 3D scene

= External Services =

This plugin embeds scenes hosted by the StorySplat service. When a page containing a StorySplat shortcode or block is viewed, the visitor's browser loads the scene inside an iframe from **discover.storysplat.com** (operated by StorySplat, https://storysplat.com). This is required to display the 3D scene — scene files are large streaming assets hosted and served by StorySplat.

* What is sent: the scene ID being embedded, plus the standard information any browser sends when loading an embedded page (IP address, user agent, referring page).
* When: only on pages that contain a StorySplat embed, at the moment the iframe loads.
* Analytics: StorySplat records aggregate view counts for the scene creator's dashboard. You can disable this per embed with `analytics="off"` (shortcode) or the "Disable Analytics" block toggle.
* Service terms: [Terms of Service](https://storysplat.com/terms-of-use) — [Privacy Policy](https://storysplat.com/privacy-policy)

The plugin itself does not load any executable code from external servers, does not set cookies, and does not send any data about your site's users to StorySplat beyond the iframe request described above.

== Installation ==

1. Download the ZIP from https://storysplat.com/plugins. In WordPress, open Plugins → Add New Plugin → Upload Plugin, select the ZIP, and install it.
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Use the `[storysplat]` shortcode or the "StorySplat 3D Scene" block
4. (Optional) Set site-wide defaults under Settings → StorySplat Viewer

== Frequently Asked Questions ==

= How do I get a Scene ID? =

1. Go to [storysplat.com](https://storysplat.com) and create or edit your scene
2. Click "Upload" or "Update" to publish your scene
3. Find the Scene ID in the "Developer Export" section
4. Copy and paste the ID into the shortcode or block

= Do I need a StorySplat account? =

You need a free StorySplat account to create and publish scenes. Embedding published scenes on your WordPress site works on every StorySplat plan, including the free tier.

= How do I control autoplay, navigation UI, or hotspots? =

Those are part of the scene itself. Configure them in the StorySplat editor and republish — every embed updates automatically.

= What browsers are supported? =

StorySplat works in all modern browsers that support WebGL 2.0: Chrome, Firefox, Safari 15+, and Edge, on desktop and mobile.

= Is there a limit on how many scenes I can embed? =

No, you can embed as many scenes as you want on your WordPress site.

= Does this plugin track my visitors? =

The plugin itself does not track visitors or set cookies. When a scene loads from StorySplat's servers, aggregate view counts are recorded for the scene creator's dashboard. You can disable this per embed with `analytics="off"` on the shortcode or the "Disable Analytics" toggle on the block. See the External Services section for details.

= Can I self-host the scenes instead? =

Not with this plugin — it always embeds StorySplat-hosted scenes so that they stay up to date automatically. StorySplat does offer self-hosted exports (on the Plus plan and above) and an npm viewer package for developers, but those are outside the scope of this plugin.

== Screenshots ==

1. An embedded 3D Gaussian Splatting scene on a WordPress page, with tour navigation UI
2. The StorySplat 3D Scene block in the Gutenberg editor with the scene settings sidebar
3. The block placeholder — just paste a Scene ID to embed
4. Site-wide defaults under Settings → StorySplat Viewer
5. Creating a scene in the StorySplat editor and copying the Scene ID from Developer Export

== Changelog ==

= 1.1.1 =
* Verified installable ZIP with shortcode and block rendering tests
* Reject malformed non-scalar scene IDs and height values
* Correct installation instructions and service policy links

= 1.1.0 =
* Scenes now embed via the StorySplat hosted viewer (iframe) — no third-party scripts are loaded into your pages
* New: per-embed analytics opt-out (`analytics="off"` / "Disable Analytics" block toggle)
* New: native lazy loading via the `loading="lazy"` iframe attribute
* Stricter validation of scene IDs and height values
* Removed the `autoplay` and `showui` embed options — these are configured per-scene in the StorySplat editor and travel with the scene
* All admin and error strings are now translatable
* Settings are cleaned up when the plugin is uninstalled
* License changed to GPLv2 or later

= 1.0.0 =
* Initial release
* Shortcode support: [storysplat scene="ID"]
* Gutenberg block with visual editor
* Settings page for default configuration
* Lazy loading support
* Responsive design

== Upgrade Notice ==

= 1.1.0 =
Embeds now use StorySplat's hosted viewer via iframe. The `autoplay` and `showui` shortcode attributes were removed — configure playback per-scene in the StorySplat editor.
