AI prompts
base on 3D Gaussian Splatting with Unity VFX Graph # SplatVFX
![gif](https://github.com/keijiro/SplatVFX/assets/343936/19fa65e7-7db5-4151-84d1-70966a27d2d1)
![gif](https://github.com/keijiro/SplatVFX/assets/343936/2267b740-0b91-41e0-9036-5b07adae90e0)
*SplatVFX* is an experimental implementation of [3D Gaussian Splatting] with
Unity VFX Graph.
[3D Gaussian Splatting]: https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
## FAQ
### Is it ready for use?
**No.** I made many compromises to implement it with VFX Graph. I recommend
trying other solutions like [UnityGaussianSplatting].
[UnityGaussianSplatting]: https://github.com/aras-p/UnityGaussianSplatting
## How to try the samples.
- Download the sample `.splat` file ([bicycle.splat]) and put it in the
`URP/Assets` directory.
- Open `URP/Assets/Test.unity` and start Play Mode.
[bicycle.splat]: https://huggingface.co/cakewalk/splat-data/resolve/main/bicycle.splat
## How to create a `.splat` file.
`.splat` is an ad-hoc file format used in antimatter15's
[WebGL Gaussian Splat Viewer]. You can convert a `.ply` file into `.splat` by
dragging and dropping it into a viewer window.
[WebGL Gaussian Splat Viewer]: https://github.com/antimatter15/splat
## How to increase the capacity.
The default VFX Graph (`Splat.vfx`) supports up to 8 million points. You must
increase the capacity when your `.splat` file has more points. Duplicate
`Splat.vfx` into your project and edit it to change the capacity value in the
Initialize Particle context.
![capacity](https://github.com/keijiro/SplatVFX/assets/343936/f8fe53b1-9173-4db7-b8b8-fbc0c00949d5)
You can check how many points are in a `.splat` file on Inspector.
![count](https://github.com/keijiro/SplatVFX/assets/343936/d6793722-d088-4904-b297-71f802fe617c)
# Limitations
- Typically, `.splat` files are trained with the reference rasterizer running
on the sRGB color space. It causes artifacts when using the Linear Lighting
Mode in Unity. You can remedy it by grading in post-processing, but it's
impossible to get perfect results with manual tweaks.
- The Gaussian projection algorithm used in the VFX Graph is far from perfect.
It causes many artifacts, including sudden pops with camera motion.
", Assign "at most 3 tags" to the expected json: {"id":"3693","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"