Olvida los Polígonos: Gaussian Splats, el Nuevo Enfoque para Gráficos 3D Fotorealistas

Rate this content
Bookmark

gsplat.js es una biblioteca de código abierto fácil de usar y de propósito general para el splatting gaussiano. En esta charla se explicará cómo funciona, para qué se utiliza y los planes para el futuro.

This talk has been presented at JSNation 2024, check out the latest edition of this JavaScript Conference.

Dylan Ebert
Dylan Ebert
5 min
17 Jun, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Hoy hablaré sobre GspotJS y Gaussian Splatting, un revolucionario pipeline de gráficos que puede renderizar escenas de alta fidelidad a 144 FPS. Gaussian Splatting es una técnica que convierte datos directamente en una imagen utilizando gaussianas. GspotJS es una biblioteca ligera de JavaScript para el renderizado de splats gaussianos, con características como el renderizado en 4D. La biblioteca tiene como objetivo proporcionar una forma sencilla y rápida de ver Splats en la web, mientras que aplicaciones más avanzadas pueden utilizar Mackellog Gaussian Splats 3D. Tanto Gaussian Splatting como gSplotJS son de código abierto.

1. Introducción a GspotJS

Short description:

Hoy hablaré sobre GspotJS y Gaussian Splatting. GspotJS es una tubería gráfica revolucionaria que puede renderizar escenas de alta fidelidad a 144 FPS. Gaussian Splatting es la técnica detrás de esto, donde se utilizan múltiples imágenes para estimar una nube de puntos en 3D, que luego se representa como Gaussians en una matriz. Estas Gaussians se rasterizan en una imagen y se entrenan para producir imágenes que se asemejen a las originales. El conjunto entrenado de Gaussians se puede rasterizar desde cualquier ángulo para generar una imagen.

Hola a todos, hoy hablaré sobre GspotJS. ¿Qué es? ¿Su historia? ¿Cómo funciona? Y ¿hacia dónde se dirige? Pero primero, ¿quién soy yo? Mi nombre es Dylan. Soy un defensor del desarrollo en Hugging Face, donde build tools y creo contenido educativo, a veces bajo mi nombre y a veces bajo keks individuales. Hablando de eso, para responder a la pregunta, ¿qué es GspotJS? Primero necesito responder, ¿qué es Gaussian Splatting? Tengo un video de 2 minutos sobre eso, aquí está. Gaussian Splatting. ¿Qué es eso? Es una forma de renderizar cosas con una alta fidelidad, muy rápido. Es importante porque es totalmente diferente de cualquier tubería gráfica existente y es capaz de renderizar escenas que se ven así, a 144 FPS. El artículo de investigación original es 3D Gaussian Splatting para renderización de campos de radiación en tiempo real. ¿Qué significa eso? Explicaré cómo funciona. Paso uno, tomar un montón de fotos de cosas desde diferentes ángulos, luego usar un antiguo algoritmo llamado Estructura a partir del movimiento para estimar una nube de puntos a partir de las imágenes en diferentes ángulos. Paso dos, tomar cada punto en la nube de puntos y decir que ahora eres un Gaussian. ¿Un qué? Una distribución que se ve como esto, pero en 3D, y también puede estar sesgada, lo que me gusta llamar multivariada. Multivariada. Todos lo llaman así. También asignamos un color y un alfa. Ahora podemos poner todas estas Gaussians en una matriz gigante, con 16 columnas y filas, una para cada Gaussian. Esto es toda la data que necesitamos para representar la escena. ¿Hemos terminado? No. Paso tres, rasterización, lo que significa convertir todas estas Gaussians en una imagen. ¿Cómo? La versión simplificada es, según la perspectiva de tu cámara, proyecta las Gaussians en 2D, luego ordénalas por profundidad, luego para cada píxel, itera sobre cada Gaussian, de adelante hacia atrás, calcula su contribución a ese píxel, luego mézclalos todos juntos. Ahora tenemos una imagen. ¿Hemos terminado? No. Parte cuatro, entrenamiento. Estas Gaussians no tienen los valores correctos, así que necesitamos entrenar ellas. Es decir, ajustar los valores de las Gaussians para que produzcan imágenes que se parezcan a las imágenes originales. Esto es muy parecido a entrenar una red neuronal, pero sin capas, lo cual es por qué es tan rápido. El entrenamiento también utiliza densificación y poda automatizadas. Es decir, cuando una Gaussian tiene dificultades para ajustarse a una parte detallada de la escena, se divide en dos Gaussians. Y cuando el alfa de una Gaussian se vuelve demasiado bajo, se elimina. Ahora tenemos un conjunto entrenado

2. Descripción general de Gaussian Splatting y G-Splat JS

Short description:

Gaussian Splatting es una técnica revolucionaria de rasterización que convierte los datos directamente en una imagen. G-Splat JS es una biblioteca ligera de JavaScript para renderizar Gaussian Splats, similar a otras bibliotecas de renderizado pero con características adicionales como renderizado 4D. La historia de G-Splat JS involucra el uso de Spaces, una aplicación de aprendizaje automático en HuggingFace, y el desarrollo de una biblioteca de JavaScript para simplificar la visualización de los resultados de Splats en demostraciones de aprendizaje automático.

de millones de Gaussians que se pueden rasterizar desde cualquier ángulo para producir una imagen. Bueno, ¿y ahora qué? Bueno, esto es extremadamente nuevo. Es como cuando se inventó la rasterización tradicional por primera vez, y luego llegó Doom y agregó sombras. Y todos dijeron, wow, agregaste sombras. Y luego vinieron los reflejos, los mapas de normales, la iluminación indirecta, ya sabes, Y este artículo básicamente está reinventando el primer paso. Ahora podrías pensar, ¿esto no es lo mismo que la fotogrametría? No, porque esta es una técnica de rasterización, lo que significa que convierte los datos subyacentes directamente en una imagen, sin necesidad de trazado de rayos, trazado de rutas, o difusión. Entonces, ¿por qué no existía hasta ahora? Porque aunque es una operación simple, para que se vea tan bien como lo hace, necesitas millones de Gaussians. Lo cual requiere varios gigas de VRAM. ¿Está a punto de cambiar por completo la gráfica? ¿O es una aplicación de nicho como la fotogrametría? Hazme saber lo que piensas.

Eso es Gaussian Splatting. ¿Y qué es G-Splat JS? Es una biblioteca de JavaScript para renderizar Gaussian Splats. Tiene mucho en común con otras bibliotecas de renderizado, como 3JS o BabylonJS, donde puedes renderizar una escena, con este código, donde configuras una escena, una cámara, un renderizador y controles. Y luego, en un bucle de actualización, actualizas los controles y renderizas la escena. Bastante simple. También tiene algunas características adicionales, como el renderizado 4D. Básicamente, un video en el que puedes mirar alrededor. También es muy ligero, menos de 1MB, mucho más pequeño que otras bibliotecas de renderizado. Ahora, sobre la historia. No soy un programador de gráficos ni un desarrollador de JavaScript. Pero algo realmente genial que tenemos en HuggingFace son los Spaces. Estas son aplicaciones de aprendizaje automático creadas por la comunidad, generalmente utilizando Gradio, una biblioteca de Python que facilita mucho la creación de aplicaciones web de aprendizaje automático. Uno de los componentes de esto es Model 3D, que facilita la visualización de los resultados de mallas 3D. Y cuando apareció Gaussian Splatting, quería habilitar la visualización de los resultados de Splats. Así que encontré este renderizador de código abierto de JavaScript, Antimatter15-Splat, creado por Kevin Kwok. Y estaba reimplementándolo en Spaces. Fue realmente doloroso. Y pensé que sería bueno si hubiera una biblioteca de JavaScript que hiciera esto más fácil. Así que la hice. Espero que ahorre tiempo a otros Por cierto, antes mencioné que Gradio Model 3D podía visualizar resultados de mallas. Bueno, ahora también puede visualizar resultados de Splats, lo que permite

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.
IA y Desarrollo Web: ¿Exageración o Realidad?
JSNation 2023JSNation 2023
24 min
IA y Desarrollo Web: ¿Exageración o Realidad?
Top Content
This talk explores the use of AI in web development, including tools like GitHub Copilot and Fig for CLI commands. AI can generate boilerplate code, provide context-aware solutions, and generate dummy data. It can also assist with CSS selectors and regexes, and be integrated into applications. AI is used to enhance the podcast experience by transcribing episodes and providing JSON data. The talk also discusses formatting AI output, crafting requests, and analyzing embeddings for similarity.
El Ascenso del Ingeniero de IA
React Summit US 2023React Summit US 2023
30 min
El Ascenso del Ingeniero de IA
The rise of AI engineers is driven by the demand for AI and the emergence of ML research and engineering organizations. Start-ups are leveraging AI through APIs, resulting in a time-to-market advantage. The future of AI engineering holds promising results, with a focus on AI UX and the role of AI agents. Equity in AI and the central problems of AI engineering require collective efforts to address. The day-to-day life of an AI engineer involves working on products or infrastructure and dealing with specialties and tools specific to the field.
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
TensorFlow.js enables machine learning in the browser and beyond, with features like face mesh, body segmentation, and pose estimation. It offers JavaScript prototyping and transfer learning capabilities, as well as the ability to recognize custom objects using the Image Project feature. TensorFlow.js can be used with Cloud AutoML for training custom vision models and provides performance benefits in both JavaScript and Python development. It offers interactivity, reach, scale, and performance, and encourages community engagement and collaboration between the JavaScript and machine learning communities.
Aplicaciones Web del Futuro con Web AI
JSNation 2024JSNation 2024
32 min
Aplicaciones Web del Futuro con Web AI
Web AI in JavaScript allows for running machine learning models client-side in a web browser, offering advantages such as privacy, offline capabilities, low latency, and cost savings. Various AI models can be used for tasks like background blur, text toxicity detection, 3D data extraction, face mesh recognition, hand tracking, pose detection, and body segmentation. JavaScript libraries like MediaPipe LLM inference API and Visual Blocks facilitate the use of AI models. Web AI is in its early stages but has the potential to revolutionize web experiences and improve accessibility.
Construyendo la IA para Athena Crisis
JS GameDev Summit 2023JS GameDev Summit 2023
37 min
Construyendo la IA para Athena Crisis
Join Christoph from Nakazawa Tech in building the AI for Athena Crisis, a game where the AI performs actions just like a player. Learn about the importance of abstractions, primitives, and search algorithms in building an AI for a video game. Explore the architecture of Athena Crisis, which uses immutable persistent data structures and optimistic updates. Discover how to implement AI behaviors and create a class for the AI. Find out how to analyze units, assign weights, and prioritize actions based on the game state. Consider the next steps in building the AI and explore the possibility of building an AI for a real-time strategy game.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
JSNation 2024JSNation 2024
108 min
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
Featured Workshop
Roy Derks
Shivay Lamba
2 authors
Hoy en día, todos los desarrolladores están utilizando LLMs en diferentes formas y variantes, desde ChatGPT hasta asistentes de código como GitHub CoPilot. Siguiendo esto, muchos productos han introducido capacidades de IA integradas, y en este masterclass haremos que los LLMs sean comprensibles para los desarrolladores web. Y nos adentraremos en la codificación de tu propia aplicación impulsada por IA. No se necesita experiencia previa en trabajar con LLMs o aprendizaje automático. En su lugar, utilizaremos tecnologías web como JavaScript, React que ya conoces y amas, al mismo tiempo que aprendemos sobre algunas nuevas bibliotecas como OpenAI, Transformers.js
Masterclass: Qué son y cómo aprovechar los LLMs
React Summit 2024React Summit 2024
66 min
Masterclass: Qué son y cómo aprovechar los LLMs
Featured Workshop
Nathan Marrs
Haris Rozajac
2 authors
Únete a Nathan en esta sesión práctica donde primero aprenderás a alto nivel qué son los modelos de lenguaje grandes (LLMs) y cómo funcionan. Luego sumérgete en un ejercicio de codificación interactivo donde implementarás la funcionalidad de LLM en una aplicación de ejemplo básica. Durante este ejercicio, adquirirás habilidades clave para trabajar con LLMs en tus propias aplicaciones, como la ingeniería de indicaciones y la exposición a la API de OpenAI.
Después de esta sesión, tendrás una idea de qué son los LLMs y cómo se pueden utilizar prácticamente para mejorar tus propias aplicaciones.
Tabla de contenidos:- Demostración interactiva de la implementación de funciones básicas impulsadas por LLM en una aplicación de demostración- Discutir cómo decidir dónde aprovechar los LLMs en un producto- Lecciones aprendidas sobre la integración con OpenAI / descripción general de la API de OpenAI- Mejores prácticas para la ingeniería de indicaciones- Desafíos comunes específicos de React (gestión de estado :D / buenas prácticas de UX)
Trabajando con OpenAI y la Ingeniería de Prompts para Desarrolladores de React
React Advanced Conference 2023React Advanced Conference 2023
98 min
Trabajando con OpenAI y la Ingeniería de Prompts para Desarrolladores de React
Top Content
Workshop
Richard Moss
Richard Moss
En esta masterclass daremos un recorrido por la IA aplicada desde la perspectiva de los desarrolladores de front end, enfocándonos en las mejores prácticas emergentes cuando se trata de trabajar con LLMs para construir grandes productos. Esta masterclass se basa en los aprendizajes obtenidos al trabajar con la API de OpenAI desde su debut en noviembre pasado para construir un MVP funcional que se convirtió en PowerModeAI (una herramienta de creación de ideas y presentaciones orientada al cliente).
En la masterclass habrá una mezcla de presentación y ejercicios prácticos para cubrir temas que incluyen:
- Fundamentos de GPT- Trampas de los LLMs- Mejores prácticas y técnicas de ingeniería de prompts- Uso efectivo del playground- Instalación y configuración del SDK de OpenAI- Enfoques para trabajar con la API y la gestión de prompts- Implementación de la API para construir una aplicación orientada al cliente potenciada por IA- Ajuste fino y embeddings- Mejores prácticas emergentes en LLMOps
Construyendo Aplicaciones AI para la Web
React Day Berlin 2023React Day Berlin 2023
98 min
Construyendo Aplicaciones AI para la Web
Workshop
Roy Derks
Roy Derks
Hoy en día, cada desarrollador está utilizando LLMs en diferentes formas y figuras. Muchos productos han introducido capacidades AI incorporadas, y en esta masterclass aprenderás cómo construir tu propia aplicación AI. No se necesita experiencia en la construcción de LLMs o en el aprendizaje automático. En cambio, utilizaremos tecnologías web como JavaScript, React y GraphQL que ya conoces y amas.
Construyendo tu Aplicación de IA Generativa
React Summit 2024React Summit 2024
82 min
Construyendo tu Aplicación de IA Generativa
WorkshopFree
Dieter Flick
Dieter Flick
La IA generativa está emocionando a los entusiastas de la tecnología y a las empresas con su vasto potencial. En esta sesión, presentaremos Retrieval Augmented Generation (RAG), un marco que proporciona contexto a los Modelos de Lenguaje Grande (LLMs) sin necesidad de volver a entrenarlos. Te guiaremos paso a paso en la construcción de tu propia aplicación RAG, culminando en un chatbot completamente funcional.
Conceptos Clave: IA Generativa, Retrieval Augmented Generation
Tecnologías: OpenAI, LangChain, AstraDB Vector Store, Streamlit, Langflow