All oncyber spaces must follow the same standards for approval.
- glb file type
- >60fps across a range of devices.
- You must submit all necessary metadata according to requirements here.
Common mistakes that result in rejection:
- Your space does not meet performance needs — add ?stats=true to the end of your destination URL to get a sense for FPS.
note: We will test across a range of devices, where you may test with just a super computer, so your FPS does not guarantee approval but should give you a sense for how close you are. Test across as many devices as you can.
- Your metadata does not meet the standards required below.
Organizization Standard for your model
- Download blender a free 3D modeling program —- if you use another program, that is okay, but you’ll want to export your GLB from there and import it to Blender to make sure the file is organized properly
- Review the sample file here to see how a properly organized file should look. You’ll have to organize your file in the same way to make sure that all features work correctly & your build will run smoothly.
- You’ll need to create empty objects for each of the categories below and parent each component to the relevant empty object.
The following components are empty objects and every mesh in the scene needs to be parented to the relevant empty object depending on the behavior and usage you desire for the mesh to have.
All the meshes that have no behavior/interaction can be parented to the display object.
note: If collision and collision_invisible have no children, all meshes in display will be used for collisions.
You need collisions to keep visitors in a set boundary. This will ensure they don't walk through items or off of a cliff.
When you only need specific meshes to be colliders in your scene, you can add them to the collision object.
note: Collisions are worse for performance than display components, and the more complex a collision, the worse for performance. Use simple, rectangular cubes for meshes for the most optimal experience.
Invisible collisions are collisions that cannot be seen by users.
If you have complex meshes with a lot of vertices, you will need to set basic shapes as collisions. The mesh can be surrounded by a box or any other basic shape for better performance in our app.
oncyber end users can set up NFTs, Youtube Videos, text, and other assets in any space, but they need “Placeholders” in order to do so. There's no real downside to placing many placeholders --- place many placeholders in areas where you think curators may want to place assets.
Add planes in your modeling software and place, rotate and scale them whoever you like. Name them placeholder_00X and parenting them to the placeholder object.
In the scene, portals are just simple planes. To enable their functionality in our app, you’ll need to parent them to the portal object.
important: all meshes need to be added to their respective parent objects.
To enable other functionalities in oncyber, we follow naming conventions. Here’s a list of some features we currently support.
You can upload a background directly in oncyber.io/uploader or oncyber.io/destinations. Instead of texturing a sphere and having a sphere surround your core model -- please upload your background directly. This will help with space performance and make sure that your space works well with other features.
You can suffix your mesh name with pbr. e.g. Pillar_001_pbr. to enable reflection in onCyber. You can then tweak metallic and roughness values in the material to achieve the effect that you like.
If you have an object with the _pbr suffix, you cannot have other meshes with the same material and not the suffix _pbr.
Visit the link below and check the spheres for an example using pbr with different metallic/roughness values.
A portal door is a mesh that will be animated to show the opening and closing of the portal.
Visit the link below and press E to open the portal and see the portal door in action.
To add a portal you’ll need to put the door mesh in the display parent object and follow the naming convention in the parentheses:
- Portal Door(Portal_Door_001) - a mesh that will be animated to show opening and closing of the portal
- Portal Animations (Portal_Close_001, Portal_Open_001) - The open and close animations of the portal door.
Any mesh with same geometry and material can be an instance mesh. Instance meshes greatly optimize a space’s performance, so using them is highly recommended.
To create an instance mesh in blender, instead of duplicating the mesh with Shift+D, use alt+D. This will automatically reduce the file size of your exported glb and allow us to detect the instanced meshes.
Lighting (& baking)
For performance purposes, we do not support live lighting, so any lighting must be "baked" into textures.
We also support an hdr environment. In the end, your model should give perfect rendering in our uploader.
🚀 Export to GLB
Before adding any placeholders, try to add one placeholder (explained below), then upload the gltf (embedded) file to the oncyber uploader
We also highly recommend running your model for compression through https://gltf.report/ as it will make it more performant. You can choose to resize textures to 2048px although we recommend 1024px for file size and performance purposes.
Upload for testing and/or submission at oncyber.io/uploader