|Create: Getting Started|
Welcome! With High Fidelity you can build complex shared interactive experiences - from a music club for live performances, to a hunger games arena, to a living room with a double-decker couch for hanging out with friends.
The sections below provide an introduction to each topic along with pointers to relevant tutorials and reference guides for more in-depth information.
Setting Up Your Sandbox Environment
To get started creating shared interactive experiences, you need:
- Interface installed - This is the client application used to view and navigate domains.
- A domain to develop in - If you installed Sandbox, you can work in your Home domain. For more information about installing and using Sandbox, go here. If you didn't install Sandbox and you don't want to run your own domain, you can work in any domain where you have been granted permission to add and edit content. To have permission to add and edit content, the domain administrator needs to update the domain’s [[Server Settings#Security|security settings].
- Space on a public content server - Any content (models, textures, animations, sounds, and scripts) that you plan to use to create the interactive virtual experience must be available from a publicly accessible server. You can either run your own content server or use a service, such as Amazon S3, Dropbox, etc.
With your work environment set up, you can get started creating and adding content.
Creating, Adding, and Editing Content Using High Fidelity GUI ToolsWhen you first start Interface, it runs a number of default scripts designed to improve the experience. One of these scripts is
edit.js, which, when run, provides a user interface for adding and editing entities (objects in High Fidelity are called entities) using your mouse or trackpad. With
edit.jsrunning, look at the lower-center margin of Interface and you'll see a button labeled Edit.
Clicking the Edit icon turns on the editing system.
The editing system includes:
- mouse / trackpad tools for editing an entity's position, scale and rotation
- a Tools window which allows you to:
- Expose a grid to assist in layout
- List the entities in the domain
- Edit entity properties - Entity properties define an entity's appearance (color, size, position etc.) and behavior (animation, collision, interaction, etc.). The entity's type (sphere, box, light, zone, etc.) will define the specific set of properties the entity has.
- a toolbar of icons that appear along the right side that allows you to:
- Upload 3D models to add model entities
- Add entities (box, sphere, light, text, web, zone, voxel, particle)
The Edit Mode guide provides more information about each of the edit options available. You'll also find quick start guides in our documentation for creating different entity types. Guides are not yet available for all types but we are adding new tutorials all the time.
Importing Your Own Content or Content from Other Sources
Each avatar that visits the domain downloads the data from the host content server. Any content (models, textures, animations, sounds, and scripts etc.) that you want to include must first be uploaded to a host content server (such Amazon S3, Dropbox, a VPS server, etc). To be accessible, all files should be in the
public_html folder of the host content server (or the public folder of Dropbox).
Content is called using its full URL, e.g.
http://example.com/myHifiFolder/myobject.fbx and can be called through scripting or by importing it using the content editing tools.
While you can create basic shapes (spheres, cubes) using Interface content editing tools (edit.js.), to build a world with more complex objects (buildings, roads, trees, planets, etc.) you'll likely want to import 3D models into High Fidelity. 3D Models imported into High Fidelity must be in FBX or OBJ format.
For more information about where to get 3D models (including creating your own), see Sourcing 3D Content. For more information about how to import 3D models, see Edit Mode: Upload 3D Models to Add Model Entity.
Creating Interactive Content Using Scripting
There are a few different kinds of scripts. "Interface Scripts," aka "Regular Scripts" are loaded via Interface and run while the client is logged into a domain and the script is loaded. They can be anything from a single-line
print("Hello World"); to a full application. "Persistent Scripts" are run on your domain and will continue to run when you are not logged in. To get a better understanding of the kinds of scripts that can be written, check out the Scripts Overview.