Skip to content
Collaborative 3D modeling in VR
TypeScript JavaScript HTML GLSL
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
UI notes.txt


Collaborative 3D modeling in VR! This project builds on Networked A-Frame to create a 3D modeling environment.

Right now, you can make boxes. And a sphere. 'v' and 'p' lock the cursor to a line perpendicular and a plane tangent to the surface under the cursor. 'g' applies a subdivision modifier to an object and 'grabs' it at the clicked point. Still working on sharp edges so cubes don't turn into blobs!

Demo GIF

Try it out here: (Running on a free server, so there may be a startup delay since the server goes to sleep.)


  1. npm i.
  2. npm run build.
  3. npm start. This starts the node server. To test it out, open two browser tabs and point them to localhost:8080 or open localhost:8080/test-2.html. More info at


  1. UI!
  2. Saving, textures, object editing, audio...



Currently using stringify to import glsl files as strings for three.js. We can't use glslify, I think, because it uses acorn to transform javascript files. Acorn can't handle typescript, and I don't think there's a way to make the glslify transform run after the tsify plugin. All glslify was doing though was importing a glsl file as a string, so stringify should do the trick. This means we can't take advantage of any of the other glslify plugins, but haven't needed to do that yet. Alternatively, webpack might work, or Parcel.

You can’t perform that action at this time.