# 3DGS Render, a Blender add-on that makes Gaussian splats editable

> 3DGS Render is a Blender add-on for 3D Gaussian Splatting, and its pitch is that splats can live inside Blender's own workflow, with selections, modifiers, cropping, colour tools and render visibility, rather than in a separate viewer. The readme is unusually clear about which parts are experimental, and about the fact that the project has moved from a single company's tooling to community-led maintenance.

**Kiri-Innovation/3dgs-render-blender-addon** — 3DGS Render by KIRI Engine

- Repository: https://github.com/Kiri-Innovation/3dgs-render-blender-addon
- Website: https://www.kiriengine.app
- Stars: 1,243 · Forks: 67
- Language: Python
- License: GPL-2.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/kiri-innovation-3dgs-render-blender-addon

## Splats inside an editable Blender workflow

The add-on's stated job is to bring Gaussian Splatting content into a familiar Blender workflow, and the list of what that means is worth reading in full.

Import and view 3DGS .ply files in Blender. Edit splats using Blender's selections, modifiers, cropping and colour tools. Switch between an editable mesh-based workflow and a faster render workflow. Render Gaussian splats and composite them with native Blender scene elements. Export edited 3DGS files and animated .ply sequences. And convert supported mesh data into 3DGS output.

Two of those are the reason to install the add-on at all. The first is the editing half. A Gaussian splat is a point cloud with colour and opacity, and the tools that exist for it are usually limited to a viewer that can rotate and zoom. Being able to select splats, delete a region, adjust colour and crop out the background inside an application that already does all of that to meshes is the difference between a capture you can use and a capture you can only look at.

The second is the render path. Once a splat is a proxy object in a Blender scene, it can be composited with the rest of the scene, lit, and rendered with the same pipeline as everything else, which is a much shorter route to a finished shot than exporting to another renderer.

The last item, converting supported mesh data into 3DGS output, is the one the readme hedges on with the word supported, and that hedge is the honest description of a conversion that cannot be exact for every mesh.

## The experimental features, and the warning attached to them

Three of the capabilities are marked experimental in the readme, and they are the three that push furthest beyond what a splat is.

Sampled Eevee shadow proxies are described as letting splats cast approximate shadows onto Blender meshes. The word approximate is doing the work there, since a splat is a view-dependent volume rather than a surface, and converting one into something Eevee can treat as a shadow caster requires sampling. The second experimental feature is proxy-based animation with baking of rigged splat sequences, which is a way of taking a rig and pushing it onto splat data. The third is baking lighting information into splats.

The readme then states the caveat in one sentence: some features are experimental and may behave differently across scenes, GPUs, operating systems and Blender versions, and you should back up important project files before testing any release.

That is a better warning than most projects give, because the list of variables is specific. A feature that depends on the GPU will not behave the same on a laptop and on a workstation, a feature that depends on the operating system will not behave the same on Windows and on Linux, and a feature that depends on the Blender version will not behave the same across a release cycle, which for an add-on is a moving target. The advice to back up the project file is not boilerplate either, since a feature that writes into a scene can leave that scene in a state you did not want.

## Installation is a zip on disk, not a package manager

The installation procedure is seven steps, and the third one carries a warning that saves a common mistake. Open the GitHub Releases page, open the release that matches your Blender version and operating system, download the packaged add-on .zip from Assets, and do not extract it.

The rest is inside Blender. Open Edit, then Preferences, then Get Extensions, use the menu in the upper-right to choose Install from Disk, select the downloaded ZIP, and confirm. The add-on then appears in the 3D Viewport behind the N key, on a 3DGS Render tab.

The do-not-extract instruction is the standard requirement of the Blender extension system, which expects a package archive rather than a directory, and it is the kind of step that a user who has installed a zip plugin by extracting it will get wrong.

The add-on is also available as a free download on Superhive, and the readme describes that as a convenient download mirror while warning that new community betas may appear on GitHub first. That ordering matters for anyone who wants the newest build.

There is a second warning, and it is about versions. Contributions merged into main may not always be promptly packaged as releases, and most Blender users should wait for a stable release unless they are helping with development and understand how to assemble and package the required dependencies. In other words, the main branch is not a download, and the release you install is the artefact with a compatibility statement attached to it.

## Edit mode, Render mode, and the visibility rules

The add-on has two modes, and the getting started section walks through the basic import. Open the add-on from the N-panel, select Edit as the active mode, open the Import menu, and import a supported 3DGS .ply file. From there you use Edit mode for selections, modifiers and other changes, or switch to Render mode for rendering workflows. The readme adds that names, controls and available features may differ between releases, which is a direct consequence of the project moving faster than its documentation.

The Render mode behaviour is the part with the most detail, and it is the part that decides whether the add-on can live inside a real production scene. Each Gaussian-splat proxy follows Blender's normal visibility controls. The Outliner eye and monitor controls show or hide a splat in the live viewport, and the camera and render control includes or excludes it from offline stills and animations. Render-disabled collections and animated render-visibility values are respected as well.

That last sentence is the one that matters. It means the add-on does not invent its own visibility system, and that a splat can be hidden in a render, animated on and off through the ordinary Blender mechanism, and excluded by a collection that is already disabled. A tool that had its own visibility flags would have to be taught about every new Blender feature, and the add-on avoids that by being an ordinary scene object.

The practical effect is that a splat can be treated like a mesh in the parts of the pipeline where it matters, which is what makes compositing splats with native scene elements work at all.

## Duplicating a splat duplicates the whole set on the GPU

Gaussian-splat proxies can be duplicated with Blender's normal Shift+D workflow, and each copy is rendered with its own transform, visibility and animation. A duplicate created from a Blender mesh source keeps its independent placement when source transforms are refreshed.

Then comes the sentence that is worth reading twice. Each copy is currently packed as another complete set of splats on the GPU, so VRAM use, sorting work and render cost increase with every duplicate. The readme's advice is to use duplicates carefully with large scans.

That is a specific and useful warning, because the natural assumption in Blender is that duplicating an object is cheap. Duplicating a mesh duplicates a few thousand vertices. Duplicating a splat set duplicates hundreds of thousands or millions of Gaussian primitives, each with its own position, scale, rotation, opacity and colour, and each of which has to be sorted for correct compositing at render time. Three copies of a room scan is three rooms worth of splats in video memory and three times the sorting work every frame.

The readme also mentions sorting work explicitly, which tells you that the cost is not only storage. The transparent compositing of Gaussians requires them to be ordered, and that ordering is recomputed as the view changes, so the cost of duplication is paid per frame rather than once.

For an artist who wants the same splat at two positions in a shot, the alternative is a different asset, a linked duplicate with shared data, or an animation, and the add-on does not describe any of those. What it describes is the cost.

## Eevee shadow proxies share one sampling budget

The GS to Mesh Shadows feature in Eevee has its own set of rules, and the readme explains them because they determine what a scene can afford.

Rebuilding creates one unselectable shadow-proxy object for each Gaussian-splat source. Each proxy is parented to its source, so it follows the source transform, which is the behaviour an artist expects from a proxy rather than a separate object. The word unselectable matters: you cannot pick the proxy in the viewport, because it is a derived object and editing it would be meaningless.

The budget is the interesting part. Total Max Cards is a single scene-wide sampling budget shared between all of those proxies, not a per-proxy setting. Which means adding a second splat to a scene does not give the second splat its own sampling allowance; it divides the same allowance among more proxies, and the result of that division is what determines whether the shadows look right.

That is a scene-level cost model rather than an object-level one, and it is the correct model for a feature that renders from the whole scene. It also means the setting has to be chosen with the whole shot in mind, and that a scene which used one splat well may look different once a second one is added, because the same budget is now serving twice the work.

## From one monolithic Serpens script to community maintenance

The governance story is the part of this readme that tells you what kind of project this is, and it has changed.

The add-on was originally generated as a large monolithic script using Serpens for Blender. A community contributor and maintainer, Hrsh-Venket, refactored it into focused modules under src/, which the readme says made the project much easier to understand and extend, and thanks him for helping make it a true open-source project. The repository layout reflects that, with an __init__.py at the root, a src/ directory of modules, an assets/ directory, a blender_manifest.toml for the extension system, and a wheels-assets-location.txt that points at where the packaged dependencies live.

The maintenance model is in transition and the readme says so plainly. The project was created and originally maintained by KIRI Engine, and is now moving toward community-led development with trusted community maintainers reviewing contributions and preparing releases. KIRI Engine remains the repository owner and project steward, but will no longer be the sole day-to-day maintainer. Community development may move faster than the written documentation and the video tutorials, and for version-specific features, compatibility and known issues you are told to check the notes attached to the release you installed, ask the community, or play around.

That last instruction is the honest summary of the current state. The releases page is the source of truth for current downloads, supported Blender versions, changes, known issues and fixes, and the main branch contains ongoing development and may not always be ready for production use.

Support is split between GitHub issues for reproducible bugs and a Discord thread for informal conversation, with the instruction to record confirmed bugs on GitHub so they remain findable. The bug report template is specific: add-on version and download source, Blender version, operating system, GPU model and driver where relevant, expected and actual result, exact reproduction steps, console output, screenshots or a short video, and a minimal .blend or sample .ply when it can be shared safely. KIRI Engine hosts the repository but does not guarantee direct technical support, compatibility updates or response times.

## Conclusion

The add-on fits a technical artist or researcher who already works in Blender and has a splat capture they need to clean up, animate and composite, since the editing tools are the reason to use it rather than a standalone splat viewer. It does not fit a pipeline that needs a single deterministic build, because the main branch is ongoing development, the releases page rather than the documentation is the source of truth, and several features are marked experimental across scenes, GPUs, operating systems and Blender versions. Before you rely on it, read the release notes attached to the version you install, back up your project files, and measure the GPU cost of duplication, since every copy of a splat is another complete set of splats packed on the GPU. The licence is GPL-2.0, version 5.1.0 was published on 2026-08-26, and the last push was on 2026-09-20.

## FAQ

### How do I install 3DGS Render in Blender?

Download the packaged add-on .zip from the Assets of the release on GitHub that matches your Blender version and operating system, and do not extract it. In Blender open Edit, Preferences, Get Extensions, use the upper-right menu to choose Install from Disk, select the ZIP and confirm. The add-on then appears in the 3D Viewport behind the N key.

### Which Blender versions does 3DGS Render support?

The GitHub Releases page is the source of truth for current downloads, supported Blender versions, changes, known issues and fixes. The installation instructions tell you to open the release that matches your Blender version and operating system, and the names and controls may differ between releases.

### Does duplicating a Gaussian splat in 3DGS Render cost GPU memory?

Yes. Each copy is currently packed as another complete set of splats on the GPU, so VRAM use, sorting work and render cost increase with every duplicate. The readme advises using duplicates carefully with large scans.

### What is Total Max Cards in the GS to Mesh Shadows feature?

It is a single scene-wide sampling budget shared between all the shadow proxies. Rebuilding creates one unselectable shadow-proxy object for each Gaussian-splat source, each parented to its source, and the budget is divided among them rather than being set per proxy.

### Who maintains 3DGS Render now?

It was created and originally maintained by KIRI Engine and is moving toward community-led development with trusted community maintainers reviewing contributions and preparing releases. KIRI Engine remains the repository owner and project steward but will no longer be the sole day-to-day maintainer, and it does not guarantee direct technical support.

## Sources

- [Kiri-Innovation/3dgs-render-blender-addon on GitHub](https://github.com/Kiri-Innovation/3dgs-render-blender-addon)
- [License: GPL-2.0](https://github.com/Kiri-Innovation/3dgs-render-blender-addon/blob/main/LICENSE)
- [Project website](https://www.kiriengine.app)
- [README](https://github.com/Kiri-Innovation/3dgs-render-blender-addon/blob/main/README.md)
- [Releases](https://github.com/Kiri-Innovation/3dgs-render-blender-addon/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kiri-innovation-3dgs-render-blender-addon
