Introducing Oculus Home User Created Spaces

Oculus Creators Blog
Posted by Oculus VR
February 14, 2019

You can now upload your own 3d models to use as your Oculus Home! If you have no experience working with 3d models, you can find and use 3d models from a variety of online sources that are readily available. If you do have 3d modeling experience, you can create or modify your home, including adding simple lighting and setting it up to use the floor, wall and ceiling materials from Home dynamically.

Homes can range from tiny rooms to large, open outdoor environments. Follow the basic instructions below to create your home, and read on for more advanced instructions.

Basic User Created Home Setup


  • Homes must be created from a .glb file.
  • Your home .glb file must be under 15mb in size.
  • Your textures cannot be over 2048 x 2048 in resolution.
  • Your home must be no larger than 1000 meters total size in any dimension.
  • Only a 250 meter cube centered on your home will be navigable.
  • All vertical facing surfaces will be walkable without specific tags (see advanced).
  • Your home must have a floor or walkable surface that faces upward.
  • The default starting point will be the bottom center of the object.
  • If there is no walkable surface at the bottom center of the object, you can use teleport to get to the floor above you and set a default starting point in Home.

GLB files can be found in many online locations, including larger sites where you can find both free models and models for purchase and communities that are sharing their creations. Please respect all license requirements when using acquired models!

There are also several groups and forums where people are already sharing their UGC creations and will most likely start sharing user created homes.

Online glTF/GLB Tools

  • Convert: Convert your glTF files to packed GLB files ready for use in home using our GLBPacker.
  • Resize: You can use this site to view and resize your GLB home.
  • Validate: You can validate that your glTF or GLB complies with the file standards here.

Loading Your Space Into Home!

Once you have a glb file ready to go, follow these steps to load it up!

  • Place your file in your Oculus Home custom homes folder on your local drive: C:\Users\[your user name]\Documents\Oculus Home\_Import\_CustomHomes
  • When you start up Oculus Home, go to the Places -> Templates folder.
  • You should see a model of your local asset, select it.
  • To create a Template from it, click the ‘Upload Template’ button in the upper right.

Once the template is uploaded, select ‘Create Home’ in the upper right.

  • You must have an open home slot to create a new home.
  • If your asset fails validation, it will give you a validation error at the bottom of its detail screen (click thumbnail).

Advanced User Created Home Setup

glTF/GLB Format Requirements and Standards

You can read about the glTF format here and find the specifications for glTF 2.0 here.

Files must comply with the glTF 2.0 standards to function properly in Oculus Home. These standard features of the glTF format are supported for user generated homes:

  • PBR Material Setup: Metallic-Roughness setup (no alpha transparency support)
  • Skinned meshes
  • Animation

We support ambient occlusion textures and emissive (glowing) textures, but they are handled in a special way. If you add ambient occlusion or emissive textures to your materials for user generated spaces, they will use the second UV channel and the emissive textures will be treated like light hitting the surface. See the ‘Add Lighting and Ambient Occlusion to your Home’ section below for more details.

Collision and Navigation

Default Starting Location

When you first load up your home, it will center your home structure at world center (0,0,0) and will attempt to place your starting location at a walkable spot within range of that.

If the floor of your space is notably higher than the bottom of the object, you may appear under the floor. If creating a space, it is ideal to make sure there is walkable space at the bottom center of the structure, however, you should still be able to use your teleport movement to move to the floor above you and then set a default entry point for the home via the Home interface.


  • 1000 meter total size restriction on space. Spaces larger than this will fail validation and not upload.
  • 250 meter total navigable size. Navmesh generation and collision are dynamic.


  • Navigation is created by default for all surfaces in the glb using raw mesh data.
  • Surfaces that you don't want to be navigable for teleport should have the tag Oculus_NoNav in their mesh name.
  • Any animated home surfaces should have the Oculus_NoNav tag!
  • There is a navigation enabled plane at zero height, and both you and visitors to your home will generally be able to exit your space and move around on this plane if they have navigation routes to escape the collision and navigation mesh of your space (i.e. an open roof with walls they can stand on, or a fully open terrain with no walls).

Using Home Floor, Wall and Ceiling Materials

Within Oculus Home, you can choose floor, wall or ceiling materials from your inventory to customize your space. With a few simple steps, you can have this same functionality in your custom home.

UV Setup

We support tiling using UV’s beyond the 0-1 range in the base UV channel (UV0), so you need to set up your floor, wall and ceiling surfaces with the proper UV mapping to work well with the Home materials. Follow these steps to get the best results:

  • Map your floor and ceiling surfaces so they have a consistent 5 meter tiling size. If your walls are simple, flat areas, the simplest way to do this a planar map where you set the projection size to 5 meters.
  • For wall surfaces, we have multiple textures that only tile horizontally. If you want these to line up properly, you must line your UVs up so that the UV shells are constrained to the 0 to 1 vertical UV space. If your walls are too tall, this may mean that your textures for the walls may be lower resolution in appearance than your floor and ceiling. Alternately, you can also map your walls as 5 meter tiling and use one of the wall materials in your home that also tiles vertically.

Material Setup

Getting your floor, wall or ceiling materials to swap for Home materials is as simple as adding a tag in the material name, but there are some other setup details that you can use to affect the final appearance.

To get a certain surface to swap its material in Home, add these tags within the material name.

  • Oculus_Floor
  • Oculus_Wall
  • Oculus_Ceiling

We will multiply the base color texture that is assigned to the material with the home material.

  • If you want the pure home material, you should use a pure white base color texture.
  • If you add any other colors or texture information to your base color, it will darken the Home material for that surface.
  • This can be used to create grime, cracks, tint or other effects.

The use of the Home tiling materials can help reduce the size of your final glb by allowing you to assign the same base color, normal, metal and roughness textures to the floor, wall and ceiling. See the ‘Optimizing your model and textures’ section below for more details.

Add Lighting and Ambient Occlusion to Your Home

We support the use of Ambient Occlusion and Emissive textures, but they will automatically use the second UV channel and the emissive texture will be treated like light hitting the surface and behaves slightly differently than normal emissive textures. You can use any method you would like to generate the emissive textures, but these steps will help ensure the best final results:

  • Ambient occlusion maps can be added to any material setup, but they will always use the second UV channel if it exists.
  • Use standard light baking processes and save your lightmaps as simple png emissive textures. If converting from .exr or other 32 bit format, you can use ‘exposure and gamma’ method of conversion in Photoshop to get accurate resulting .png files. You will have some simple, low-level indirect lighting in home even without any lighting, so your final lighting will not be exactly the same as your 3d application.
  • Once in your custom home, we have also added the ability to turn your interior lighting level up and down, allowing you to adjust the level dynamically. This will not adjust the low level indirect lighting, only the additive light from your emissive light maps.
  • You will have a single directional light and basic sky in your home once you have created it in Home. The directional light casts real time shadows. You can set the color for the directional light, including choosing black which will turn the light off. If your model isn't surrounded by outward facing, shadow casting surfaces, sunlight will come through the back of your walls unless you turn the light down in Home. Only you control the lighting for your homes and visitors will see what you set for them.

Optimizing Your Model and Textures

There are several tricks to make your custom home fit within the 15 mb limit.

  • Use our glb packer and enable the 'Convert PNG to JPG' option. Make certain to visually check your textures in Home after doing this, as it will add compression artifacts!
  • Use Home swap materials for floor, wall and ceiling areas and set the base color to white. If you're using AO or Emissive as lighting, set up your materials as follows. Set your materials to only use Ambient Occlusion and/or Emissive textures. Set base color to white.
  • Emissive maps used for lighting and Ambient Occlusion maps can be lower in resolution and generally still read well when combined with the based textures, so you can use lower resolution textures for them to reduce memory.
  • Generally breaking up larger structures into tiling 1024x1024 textures by surface type, which are then paired with 1024 Ambient Occlusion maps for those surfaces works well. 'Tiling' here refers to increasing the size of the UV shells of the objects so the texture repeats across the surface. All Ambient Occlusion and Emissive maps use the second UV channel, which should generally be unique, non-overlapping shells in the 0-1 UV space.

— The Oculus Team