<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VR | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/vr/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/vr/index.xml" rel="self" type="application/rss+xml"/><description>VR</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 05 Aug 2025 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>VR</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/vr/</link></image><item><title>Midterm Report: Learning, Building, and Documenting Brahma</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/ucsc/brahma/08052025-kajaljotwani/</link><pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/ucsc/brahma/08052025-kajaljotwani/</guid><description>&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>&lt;strong>Brahma-XR&lt;/strong> is an open-source WebXR framework designed for building collaborative virtual environments especially those involving spatial data and scientific visualization.&lt;/p>
&lt;p>What makes Brahma powerful is that the same codebase runs seamlessly across both the browser and XR devices like the Apple Vision Pro, Meta Quest 3, and VARJO. This makes it ideal for rapid prototyping and creating cross-platform immersive experiences.&lt;/p>
&lt;p>Some of Brahma’s built-in features include:&lt;/p>
&lt;ul>
&lt;li>Grab-and-pull locomotion&lt;/li>
&lt;li>Raycasting and interaction&lt;/li>
&lt;li>Avatar embodiment&lt;/li>
&lt;li>Spatial rendering&lt;/li>
&lt;li>Support for geospatial and data-driven visualizations&lt;/li>
&lt;/ul>
&lt;p>Brahma is intentionally lightweight, optimized to run even on low-compute devices—making immersive collaboration more accessible to everyone.&lt;/p>
&lt;h2 id="what-worked-and-what-didnt">What Worked (and What Didn’t)&lt;/h2>
&lt;p>As Brahma transitioned from a private research repo to a public open-source project, a lot of important foundational work had to be done around documentation, packaging, and example previews.&lt;/p>
&lt;p>There are two aspects that make Brahma especially unique:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Bipartite npm package structure&lt;/strong> – which requires detailed and thoughtful documentation.&lt;/li>
&lt;li>&lt;strong>Immersive, real-time examples&lt;/strong> – unlike typical libraries, Brahma’s examples aren’t just static demos. They are live, multi-user XR apps designed to be interacted with.&lt;/li>
&lt;/ol>
&lt;p>The first half of the project focused on setting the stage—structuring and preparing the framework for broader use.&lt;/p>
&lt;h3 id="-key-accomplishments">🔧 Key Accomplishments&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Learning Three.js&lt;/strong>&lt;br>
I spent time learning the fundamentals of Three.js—how it handles 3D rendering, scene setup, materials, cameras, and animations. I also explored how large-scale Three.js projects are organized, which helped me understand how Brahma’s example apps are built.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Setting up the project structure&lt;/strong>&lt;br>
I looked at the architecture of various open-source projects and used that knowledge to shape Brahma’s structure. The goal was to align with community best practices while keeping things clean and modular for future contributors.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Understanding npm packaging (especially bipartite)&lt;/strong>&lt;br>
Since Brahma includes both client- and server-side logic, I spent time understanding how multi-part npm packages are published and maintained. I explored best practices around versioning, distribution, and separating internal vs public modules.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Creating a documentation system&lt;/strong>&lt;br>
After exploring different approaches (and with my mentor’s help), I set up a static documentation site using &lt;a href="https://jsdoc.app/" target="_blank" rel="noopener">JSDoc&lt;/a> with the Docdash theme. The current version includes guides, API references, and contribution instructions. This is just the beginning—the docs will evolve as the community grows.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="whats-next">What’s Next&lt;/h2>
&lt;p>In the second half of the project, I’ll be focusing on:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Building a routing system&lt;/strong>&lt;br>
For both documentation and example apps, so that users can easily browse through different components and use cases.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Setting up UI and 3D infrastructure&lt;/strong>&lt;br>
To make it easier for others to start building apps with Brahma by providing clean base layers for interface and spatial development.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Prepping for the first public release&lt;/strong>&lt;br>
Publishing the Brahma NPM package along with a curated set of featured examples and contributor-friendly documentation—making it easier for developers to get started and contribute.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="reflection">Reflection&lt;/h2>
&lt;p>This project has truly been the highlight of my summer. Learning about WebXR, Three.js, and open-source workflows has been both exciting and rewarding. Every challenge taught me something new.&lt;/p>
&lt;p>I am specially greatfull to my mentor &lt;strong>Samir Ghosh&lt;/strong> for his constant support, patience, and guidance. It’s been a privilege learning from you!&lt;/p>
&lt;p>I&amp;rsquo;m looking forward to what’s coming next as we get closer to the first public release of Brahma!&lt;/p></description></item><item><title>Into the VR-Verse: My GSoC Adventure Begins!</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/ucsc/brahma/06152025-kajaljotwani/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/ucsc/brahma/06152025-kajaljotwani/</guid><description>&lt;p>Hello! I’m Kajal Jotwani, an undergraduate Computer Science student from India who is passionate about building creative, interactive technologies and contributing to open source. This summer, as part of Google Summer of Code 2025, I will be working on the Brahma / Allocentric WebXR Interfaces project under the mentorship of &lt;strong>Samir Ghosh&lt;/strong>. You can read my complete &lt;a href="https://docs.google.com/document/d/1Ne7ADVM72jRuxU7wzRYK8Hvp1zqCUviU0Fh1sTtRWe4/edit?usp=sharing" target="_blank" rel="noopener">proposal here.&lt;/a>&lt;/p>
&lt;p>This project focuses on creating a formalized framework for building collaborative and cross-platform WebXR-based experiences. As part of its first public release of Brahma- a lightweight open-source toolkit, our goal is to formalize the framework, create documentation, and implement example applications like multi-user games and scientific visualizations. This will help make Brahma extensible and accessible for a wider developer community.&lt;/p>
&lt;p>I&amp;rsquo;m excited to be working on this project and will be documenting my journey, learnings, and progress here throughout the summer.&lt;/p></description></item><item><title>Brahma</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/brahma/</link><pubDate>Tue, 11 Feb 2025 12:34:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/brahma/</guid><description>&lt;p>Brahma is a lightweight framework for building collaborative and cross platform WebXR based experiences using Three.js for the front-end and a simple Node.js/WebSocket script on the backend. It was created at the Social Emotional Technology Lab to facilitate the development of novel collaborative interfaces and virtual environments capable of loading scientific datasets. For example, in the featured image, multiple avatars are exploring a &lt;a href="https://www.science.org/doi/10.1126/science.adf0566" target="_blank" rel="noopener">marine science dataset related to seal migration paths&lt;/a> overlaid on NOAA bathymetry and telemetry data.&lt;/p>
&lt;p>It addresses a gap where prior open-source collaborative VR is no longer available such as the defunct &lt;a href="https://support.mozilla.org/en-US/kb/end-support-mozilla-hubs" target="_blank" rel="noopener">Mozilla Hubs&lt;/a> or proprietary engine based frameworks such as &lt;a href="https://ubiq.online/" target="_blank" rel="noopener">Ubiq&lt;/a>. Furthermore, it uses very little computational resources to run and develop, enabling creators who may not have a powerful computer to run a game engine in order to develop a networked VR application.&lt;/p>
&lt;p>This project involves the first public release of Brahma&amp;ndash; creating a lightweight open source framework that facilitates multi-user games, scientific visualizations and other applications. In order to do so, we need to formalize the framework, provide documentation, and implement key examples so that the open source tool can be extensible and serve a wider community.&lt;/p>
&lt;p>Mentees can expect to learn best practices for VR development and testing and gain familiarity with full stack development practices. Mentees should have access and experience using a VR headset.&lt;/p>
&lt;h1 id="brahma--protoocol-release-and-validation">Brahma / Protoocol Release and Validation&lt;/h1>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>Software Architecture&lt;/code> &lt;code>VR Development&lt;/code> &lt;code>Computer Graphics&lt;/code> &lt;code>Cloud Platforms&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Node.js, Three.js&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:sghosh17@ucsc.edu">Samir Ghosh&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The proposed work includes three phases, primarily working on backend code, and API design. In the first phase, to gain familiarity, the mentee will be running and testing the Brahma backend on a variety of cloud platforms such as AWS, Google Cloud, and Azure&amp;ndash; and learning best methods for documentation in the process. Then, in the second phase, the mentee will work on formalizing the protocol for avatar embodiment and other multi-user interfaces, testing the application with a simple pong game. In the third phase, the mentee will address telemetry, logging, and analysis considerations.&lt;/p>
&lt;p>This project is well suited for someone who has interest in virtual reality, especially social VR, multi-user, or collaborative applications&lt;/p>
&lt;h1 id="brahma--allocentric-webxr-interfaces">Brahma / Allocentric WebXR Interfaces&lt;/h1>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>Web Development&lt;/code> &lt;code>VR Development&lt;/code> &lt;code>Computer Graphics&lt;/code> &lt;code>UX/UI&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Three.js, GLSL, WebSocket&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Moderate-Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:sghosh17@ucsc.edu">Samir Ghosh&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The proposed work primarily involves front-end code and VR interface design. In the first phase, the mentee will gain familiarity with best practices for WebXR development through the implementation and documentation of simple interaction patterns. Then, the mentee will implement a simple multi-user pong game to learn about allocentric interfaces. In the final phase of the project, the mentee will design and implement one or more allocentric interface of their choosing.&lt;/p>
&lt;p>This project is well suited for someone who has interest in virtual reality, especially aspects of graphics and interaction design.&lt;/p></description></item></channel></rss>