# Overview

Welcome to the Roomle Content Creation documentation. This guide introduces the process and concepts behind creating interactive 3D product configurators using the Roomle Rubens platform.

## Asset Types in Roomle

To build a configurator, you will work with three main types of assets:

![Asset Types](https://2782441740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjLjPj3wCHnfCfuOYQpf4%2Fuploads%2Fgit-blob-66c442e3a83af93453fb909dc12ea146a07e9893%2Ftriangle_roomle_components.svg?alt=media)

**Component Definitions with RoomleScript (Logic)**

* JSON-based definitions that describe how a product can be configured.
* Contain parameters, rules, and RoomleScript logic to control geometry, materials, and product behavior.
* Component definitions are the core of Level 3 configurators, enabling interactive and parametric products.

**Textures (Materials):**

* Images and material definitions that give your models color, surface detail, and realism.
* Materials are uploaded and managed in Rubens Admin, and can be mapped to meshes in your components.

**Geometry (Meshes):**

* 3D models representing the shape of your products.
* Created in 3D modeling tools (like Blender) and imported into the Rubens Admin platform.
* For Level 1 (Model Viewer), uploading a mesh is sufficient to visualize a product.

## Content Creation Levels

Roomle supports several levels of content creation, each building on the previous:

* **Level 1: Model Viewer**
  * The simplest form: upload a mesh in Rubens Admin to visualize a static 3D model -> [Learn more](https://docs.roomle.com/rubens/rubens-admin/help/products#create-a-static-product).
* **Level 2: Material Configurator**
  * Allows users to change colors or finishes, but does not support advanced logic or parametric geometry.
  * Upgrade a Level 1 model by adding materials and simple parameters in Rubens Admin -> [Learn more](https://docs.roomle.com/rubens/quick-start-guides/convert-your-static-product-into-a-material-configurator)
  * Create Level 2 configurators from scratch -> [Learn more](https://docs.roomle.com/rubens/content-creation/scripting-resources/150_10_lvl2_intro).
* **Level 3: Product Configurator**
  * Combines geometry, textures, and logic in component definitions.
  * Enables full configurability and feature set of the Roomle Rubens Configurator: users can change dimensions, select options, and see the product update in real time.
  * Requires writing RoomleScript and structuring component definitions to describe all possible configurations.
  * [Learn in the Scripting Course](https://docs.roomle.com/rubens/content-creation/scripting-resources)
  * [Configurator Features Overview](https://docs.roomle.com/rubens/content-creation/roomlescript-reference/configurationformat)
  * [RoomleScript Language Reference](https://docs.roomle.com/rubens/content-creation/roomlescript-reference/roomlescript-language-reference)
  * [Built-in Functions Reference](https://docs.roomle.com/rubens/content-creation/roomlescript-reference/roomlescript-built-in-functions)

## Workflow Overview

**Create Components:**

* Set up Visual Studio Code with the Roomle Component Tool Extension to write component definitions -> [Learn more](https://docs.roomle.com/rubens/content-creation/scripting-resources/100_10_setup) and learn the features of the extension -> [Learn more](https://marketplace.visualstudio.com/items?itemName=Roomle.roomletool).
* Create component definitions that reference your meshes and materials -> [Learn more](https://docs.roomle.com/rubens/rubens-admin/help/components).
* Add parameters and RoomleScript logic to enable configuration -> [Learn more](https://docs.roomle.com/rubens/content-creation/scripting-resources/200_20_componentdefinitionbasics).
* Link the meshes with materials from Rubens Admin to your component definitions -> [Learn more](https://docs.roomle.com/rubens/scripting-resources/200_100_meshes#addexternalmesh) or create geometry from primitives, prisms and CSG operations -> [Learn more](https://docs.roomle.com/rubens/roomlescript-reference/configurationformat#geometry-object-functions)

**Set Up Materials:**

* Create and upload material definitions and textures in Rubens Admin -> [Learn more](https://docs.roomle.com/rubens/rubens-admin/help/materials).

**Prepare 3D Models:**

* Get the Roomle Blender Addon -> [Learn more](https://docs.roomle.com/rubens/content-creation/blender-addon)
* Model your product in a 3D tool and export it in a supported format using our Roomle Blender plugin -> [Learn more](https://docs.roomle.com/rubens/content-creation/scripting-resources/150_20_lvl2_mesh).
* Import the meshes into Rubens Admin -> [Learn more](https://docs.roomle.com/rubens/rubens-admin/help/meshes).

## Integration

Once the content is ready, the next step is to integrate it into your website or application -> [Learn more about integration](https://docs.roomle.com/rubens/rubens-products/rubens-configurator/integration).
