The First Onchain GS

The first Gaussian Splatting ever encoded on the blockchain,

fusing 3D scene representation with AI, Computer Vision, and Crypto.


All scenes are permanently sealed onchain.


Witness an Immutable Record of History

$FOCGS (The First OnChain Gaussian Splatting )

Introducing $FOCGS (The First OnChain Gaussian Splatting): a token created to commemorate the first-ever attempt to store 3D scene representation with Gaussian Splatting (GS) data on-chain. This milestone symbolizes a bold step into the emerging intersection of AI x Computer Vision x Crypto.

The developer plans to:

  • Release the code and detailed steps for processing and uploading GS data on-chain.
  • Add features to the project's website, enabling users to upload GS (and even training GS) through a web interface. Please note the current process is inefficient in terms of cost and the usage of the Solana MEMO program. Note: This is a plan and not a commitment. Implementing such features will require significant effort.
  • Keep exploring techniques and area of AI x Computer Vision x Crypto in depth and bring back.

Disclaimers: $FOCGS is purely a meme coin with no utility. DYOR and NFA.

CA: EhA7GAmqLpFSe8zXwnJNu8hHZn8RJrX6kkqftJUtpump

What is Gaussian Splatting (GS)?

3D Gaussian Splatting (GS)[1] is an innovative technique for 3D scene reconstruction and rendering. It uses 3D Gaussian functions to represent scene elements, encoding both geometric and appearance information. This approach offers a novel way to achieve efficient 3D rendering with applications in real-time graphics and visualization.

Gaussian Densification Scheme

Figure 1: Gaussian Splat Representation

Gaussian Splat Representation

Figure 2: Gaussian Densification Scheme

Key characteristics of Gaussian Splatting include:

  • Realistic surface representation: Captures scene geometry and appearance in a way that supports natural rendering.
  • Real-time rendering potential: Suitable for interactive graphics applications.
  • View-dependent effects: Supports realistic shading and lighting based on the observer's perspective.
  • Explicit representation: Models the scene directly through parameterized 3D Gaussian functions.

Gaussian Splatting represents a new direction in 3D rendering techniques, merging advanced computational approaches with practical rendering needs.

[1] Kerbl, Bernhard, Georgios Kopanas, Thomas Leimkuehler, and George Drettakis. "3D Gaussian Splatting for Real-Time Radiance Field Rendering." ACM Transactions on Graphics (TOG) 42 (2023): 1–14.

Further Reading: https://scaniverse.com/news/intro-gaussian-splats

On-chain Gaussian Splatting

This project marks the first-ever attempt to encode a reconstructed Gaussian Splatting scene on the Solana blockchain, ensuring:

  • Decentralized storage and distribution
  • Immutable scene preservation

By storing Gaussian Splats on-chain, we create a permanent, accessible repository of 3D scenes that can be easily shared and verified across the network.

But how? Gaussian Splatting typically contains millions of splats to represent a realistic scene, with file sizes exceeding 100MB. This project adopts several techniques to compress and quantize the GS data.

Overview of Gaussian Splatting Compression Process

The reconstructed GS data is first split into several small chunks, each containing only a few splats. Note that the Solana Memo Program only accepts data chunks of approximately 500 bytes. These chunks are then quantized into the SPZ format (introduced in [2]), which can reduce the file size by approximately 90%. After that, post-processing (adjusting the degree of Spherical Harmonics, or SH) is applied to further reduce the file sizes. Finally, the chunks of binary data are encoded into ASCII using base64 encoding, which results in a ~33% increase in size.

In our demo on this website, the uncompressed GS contains 667,071 splats with 158MB (which is approximately 165,150,720 bytes). We successfully compressed it to 43MB (approximately 45,056,512 bytes) and separated it into 39,341 chunks, uploading it on-chain by 39,341 transactions.

These transactions can be viewed in the gs_chunks_transactions.txt text file.

[2] Scaniverse, "SPZ: Gaussian Splat Open-Source File Format." Scaniverse News. Available at: https://scaniverse.com/news/spz-gaussian-splat-open-source-file-format.

Interactive Visualization of Immutable Onchain Data

Below you will witness a groundbreaking achievement:

  • A complete 3D scene reconstructed entirely from immutable on-chain data.
  • Every aspect of this visualization is decoded from blockchain transactions, where the scene's Gaussian splats are permanently sealed.

The scene you're interacting with contains 667,071 Gaussian Splats, compressed and stored across multiple Solana transactions. Each indivisual color you saw represents a chunk of this data, which is retrieved and decoded to reconstruct the 3D scene.

How to Interact:

The demo provides several ways to explore and understand how the scene is stored and reconstructed:

  • Explore Transactions: Hover over the nodes in the right panel to view the corresponding blockchain transactions that store each chunk of the scene.
  • Adjust Observable Level: Use the slider to modify the ratio of visible splats. Watch how the scene's detail evolves and dissolves between different percentages.
  • View Control:
    • Left Mouse: Click and drag to rotate the camera around the scene.
    • Right Mouse: Click and drag to pan the camera.
    • Mouse Wheel: Scroll to zoom in and out of the scene.