Skip to content

🧊 A Web Render Engine for rendering Interactive scenes with any 3D Asset from GLB, Huge-scale Point clouds, 3D Textured Meshes to 3D Gaussian Splats ✨

Notifications You must be signed in to change notification settings

UnprojectAI/web-render-engine

 
 

Repository files navigation

🧊 Web Render Engine for 3D Assets - 3D Gaussian Splats & more! ✨

Created by: Michael Jernil, 3D Graphics Engineer & Enthusiast (https://www.linkedin.com/in/michael-jernil/) as Part of a Blog post to be released soon on www.radiancefields.com

Blog Post: " Understanding 3D Gaussian Splatting ✨ through the lens of Render Engine - First Principles! " (Link will be added on Release)

Preview

scrnli_20_12_2023_17-47-17.webm

Created w/ React + TypeScript + Vite using Libraries - React Three Fiber + Three.js + luma-web

DISCLAIMER: This Repo is currently a Work-In-Progess (at it's initial stages). More updates will be Coming soon!

Features ⭐️

  • View 3D Gaussian Splats generated using Luma AI (https://lumalabs.ai/)
  • View glTF Assets
  • Gizmo for Easy Navigation

Work in Progress 🚀

  • View Huge-scale 3D Textured Meshes (3D Tiles) streamed from cloud (or) local storage
  • View Huge-scale Point Clouds (Potree) streamed from cloud (or) local storage
  • Enable Viewing of local/hosted SPLAT files
  • Enable Viewing of local/hosted glTF files
  • Deployment to Vercel!
  • Support for setting up interactive 3D scenes with SPLAT, glTF & other types of 3D assets in the same space!
  • More Sample assets! 🏗️
  • UI Enhancements 😇

Render Engine - First Principles 🧊

FP-RenderEngine

3D Gaussian Splatting through Render Engine - First Principles ✨

Screenshot 2023-12-09 at 11 32 13 AM

With the latest advancements in Computer Graphics, there is a new Pandora's box that has been opened called - '3D Gaussian Splatting'. It works on the concept that real world scenes could be efficiently represented as 3D Gaussian Splats (3DGS) - as an alternative to Traditional Mesh representation which involves - Mesh, Textures, Lighting etc.

This 3DGS representation has the primary advantage that huge real-world scenes which are otherwise generated by classic photogrammetry & complex to render using traditional computer graphics techniques can now be represented as 3D Gaussian Splats, which you can imagine as 3D paint strokes with a centered color and transparency values around the center, which also takes into account from where/how the scene is being viewed (aka the Camera). When multiple of these strokes are rendered with proper blending of alpha transparency from each splat, it can form a near realistic 3D image that can be viewed from any angle. 🔮

Get Started 📺

Clone Repo

Use git clone <repo-link> to clone the repo to your PC

Install the Packages

Use npm i to install the necessary packages

Run the 3D Viewer

Use npm run dev to run the viewer in development mode

Viewer

Now you can see the Render Engine running on http://localhost:5173. You can navigate, interact & play around with the 3D Assets!

Follow 👥

About

🧊 A Web Render Engine for rendering Interactive scenes with any 3D Asset from GLB, Huge-scale Point clouds, 3D Textured Meshes to 3D Gaussian Splats ✨

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 77.8%
  • CSS 13.3%
  • JavaScript 4.8%
  • HTML 4.1%