# 3D Models - Props & NFTs

## Introduction

Creating new NFTs or other assets on the Bit.Country platform is straightforward, typically consisting of filling in some fields and uploading the 3D file.

New NFTs can be minted on the platform through the provided web interface, where you can create collections, mint NFTs in bulk, add metadata, and more during the process. NFTs can consist of different formats of media. See the NFT sections of this manual.

Props (non-NFT assets - which may be changed in the future) are currently uploaded from within the world's build menu. They have much less metadata compared to the NFT minting process.&#x20;

{% hint style="info" %}
More data and fields will likely be added as time goes by, and later in the roadmap, the team is looking at separating out the prop creation process for more customization.
{% endhint %}

## Fundamentals for Asset Creation

For 3D models, the goal is to minimize the file size and complexity wherever possible. The BIT cost is higher for larger and more resource-intensive files. The higher the model's polycount, number of materials, total volume, and texture resolution; the higher the BIT cost when placing it.

Suggesting budgets for polycounts are subjective, they depend on the asset you wish to create and its desired presentation size in the metaverse. If you are making a small figurine, it should be similarly low in polycount and texture size. Likewise, for a larger statue or even stadium, you’d expect higher polycounts to ensure enough detail.

### Recommendations

Take advantage of common techniques such as baking detail (where appropriate) into textures, normal maps, etc, for the best results while maintaining smaller file sizes and BIT costs. Tiling your texture/stacking your UVs can give great results while reducing file size related to textures.&#x20;

{% hint style="info" %}
Keep in mind that in certain cases, you may find that lower resolution textures with baked details could be worse off than a higher poly model with less baked details, so gauge it as you work on your assets - making a compromise between file size, appearance and BIT cost.
{% endhint %}

The majority of assets put on the platform should be less than 1-2MB, if you need a larger structure and more detail, you could consider splitting it into multiple smaller pieces and placing them into the world.&#x20;

{% hint style="info" %}
In the future, there may be limits placed on the number of assets, or polycount within an area to ensure smooth performance for as many users as possible.
{% endhint %}

### Limitations & Features

The maximum file size is currently 20MB but you should almost never use that size. The prop system will complain if you try to upload anything more than 5MB, and as above, the majority of props should be less than 1-2MB.

{% hint style="info" %}
Limitations are always subject to change and maximum file size is a candidate for reduction.

Hard limits on polycounts are being considered in addition to the high BIT costs currently associated with these models.
{% endhint %}

Models with skeletal animations are supported. Currently, vertex animations are unsupported.

Collisions are supported for 3D models with a designated collider mesh. See below for more details on setting up a collider.

### File Types

Currently, the Bit.Country platform only supports the .GLB/.GLTF file format for 3D models, and they must be exported with the materials and textures combined into a single file.&#x20;

Many extensions to the GLTF spec are supported, however, it is best to focus on the core spec when designing your 3D models. Extensions related to lights and sounds are disabled, and models using those extensions are likely to fail when loaded into the world. The availability of extensions is subject to change.

Avoid using geometry compression (Draco compression) for your GLB/GLTF files as the feature is still under consideration for the engine. See the screenshot from Blender below.

![](https://3287443642-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUmYKzaqvyDZcUSLKTr99%2Fuploads%2FqpFnxzKUG4wbUXeyTOQn%2Fimage.png?alt=media\&token=82ae04d4-1bee-41b1-881f-9e8f0095a302)

{% hint style="info" %}
You should try out any 3D models in the sandpit to see how they load and display in the world.&#x20;

All changes and new props created in the sandpit are completely local to your browser and are not saved.
{% endhint %}

## Setup

Use meters as the unit of scale when modeling your meshes. Ideally, your mesh should be placed at the origin.

{% hint style="info" %}
The volume your mesh takes will always include the origin. So aim to keep the origin within the same general vicinity of the geometry itself. Otherwise, you are adding unnecessary BIT costs and making it harder to place your assets in the world.
{% endhint %}

## Exporting

Export with Y+ as up, and keep in mind that Z+ is forward and X+ is to the right. Ensure that you clear all the transforms before exporting, including delta transforms (in Blender or equivalent elsewhere).

For animations, it’s best to export them as separate NLA strips in Blender or equivalent in other modeling software as that’ll make it easier to work with the Experience framework to play animations. Once it (the Experience framework) becomes available.

## Collider Meshes

To enable collisions on your NFTs and props, you'll need to provide collider meshes in the same file as the rest of your meshes. This mesh should have no parent and have \_Collider at the end of its name, the rest of its name is up to you. See the example screenshot in Blender below.

![](https://3287443642-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUmYKzaqvyDZcUSLKTr99%2Fuploads%2F2piKMY6Hr7jnLHPcrdsF%2Fimage.png?alt=media\&token=d80139b0-dc80-4078-9e13-a56f13bfbdc3)

{% hint style="info" %}
For example, the collider could be called Tree01\_Collider or even anything\_Collider
{% endhint %}

This collider mesh's geometry should be as simple as possible, and often colliders are cubes. Trees, posts, fences, and more are well suited to using a cube to represent their collider.

{% hint style="info" %}
You should almost never use the main mesh's geometry as the collider unless it is already so simple (like a cube/box).
{% endhint %}

Ensure that the collider has no more than 1 material (ideally no material) as it won't be rendered and setting materials can break the collider from functioning correctly.

{% hint style="info" %}
You are welcome to have more than one collider mesh in any file, you can even have more than one for any given rendered mesh.&#x20;

In any case, aim for them to be simple and have as few as possible to have the best end result.
{% endhint %}
