3D models are the 3D objects inside of your world. Usually you will import objects created by other software, although you can also create objects from primitives within Vizard.
Add 3D models to your world with viz.add(<object filename>). Because adding objects can sometimes take a couple seconds, you are better off adding all your objects at the beginning of your script. If you do not want to see an object initially, turn off its visibility with <node3d>.visible(). To remove an object from your world permanently, use <node3d>.remove().
Avatars are a special class of 3D models. You can use any of the commands you use with other 3D models. In addition to the generic commands, they have a variety of functionality all their own, detailed in the avatar section.
The appearance and texturing of 3D models can be changed in all sorts of ways. Check out this section for more details.
Rotating, positioning and scaling models are all common ways to transform models. Check out this section for more details on transforms.
To retrieve information about 3D models, check out the <node3d> library of commands beginning with 'get'.
For information on how to animate objects, check out the sections on actions and animation paths. If you want to move your model by applying forces or want your model to collide with other models, check out the section on physics.
To copy an object, use <node3d>.copy(). This copy will have the appearance of the original object when it was created. Any future changes to the original object's appearance will not affect the copy. Copies are also created independent of any position, orientation or scale transforms applied to the original object. So, even if you create a copy of an object that is two meters about the origin, the copy will appear at the origin.
To create a clone, use <node3d>.clone(). Clones share the appearance of all the other clones. Changing the appearance of any one clone will change the appearance of all the clones (although all their position, orientation, and scale transforms will be independent).
To create a duplicate of an object that appears in another scene and shares the appearance and transforms of the original object, use <node3d>.addParent(<parent>,<scene>),where <scene> is the scene you want the duplicate to appear in. See the section on scene basics for more on this distinction.