Objects
The puzzles from this category perform various operations with objects.

Contents
- Puzzles Reference
- show
- hide
- is visible
- clone
- create object
- remove object
- set transform
- get transform
- change local transform
- snap to object
- parent
- set object direction
- get object direction
- get objects from
- get morph factor
- set morph factor
- add annotation
- remove annotation
- open annotation
- close annotation
- create text object
- update text object
- distance
- get custom props
- outline
- Update light probe
Puzzles Reference
show
Makes a specified object, that was initially or previously hidden, visible. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle. If there is no such object(s) present in the scene, or an object is already visible, does nothing.

hide
Makes a specified object invisible. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle. If there is no such object(s) present in the scene, or an object is already invisible, does nothing.

is visible
Checks if an object (or any of objects in a list) is currently visible. If it so, returns the logical value true, otherwise returns false. If there is no such object(s) present in the scene, returns false.

clone
Makes an object copy, generates a unique name for the new object and immediately adds it to the scene. Outputs the new object. Does not work with lists, groups or the all objects puzzle.

create object
Creates and adds a new object to the scene. This puzzles creates objects without the need in a 3D editor, and as such is useful for learning Puzzles as well as designing primitive visuals by users with no or minimal 3D modelling skills.

For geometry objects, such as boxes or teapots, this puzzles also creates white-colored dielectric glTF-compliant PBR material (with roughness value set to 1 and metalness set to 0). Use set color and set value puzzles to tweak that material.
remove object
Removes a specified object from the scene. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle. If there is no such object(s) present in the scene, does nothing.

set transform
Moves, rotates or scales an object according to specified transform data. The "offset" checkbox enables moving/rotating/scaling an object relatively to the original position/rotation/scale. Any of the axis inputs can be left blank. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle.

Sometimes you need to input a vector (which consists of the given X, Y, Z coordinates). In this case, you can modify the puzzle by clicking on the gear icon and setting on checkbox use vector. The "world space" checkbox enables transformations in world space (does euler rotation in XYZ order), otherwise does transformations in object's space.
get transform
Retrieves the position, rotation or scale data of an object. To retrieve transformations in world space click on the gear icon and set on checkbox "world space" (retrieve euler rotation in XYZ order). Does not work with lists, groups or the all objects puzzle.

change local transform
Moves, rotates or scales an object according to specified transform data in its local space. Any of the axis inputs can be left blank. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle. Sometimes you need to input a vector (which consists of the given X, Y, Z coordinates). In this case, you can modify the puzzle by clicking on the gear icon and setting on checkbox use vector.

snap to object
Moves an object to the position of another object by copying its transform data. Also copies rotation and scale. Does not work with lists, groups or the all objects puzzle.

parent
Creates a parent relation between objects, so that the first object follows position/rotation/scale of the second one. Does not work with lists, groups or the all objects puzzle.

Specify <none> as the second value to unparent the object.

set object direction
Set an object's direction to the point/vector with X, Y, Z coordinates. The point checkbox specifies whether the X, Y, Z coordinates belong to some point in 3D space or represent a direction vector. The lock up checkbox locks the up-down axis of the object so it remains perpendicular to the horizontal surface.

get object direction
Returns an object's direction vector or numeric X, Y, Z vector components.

get objects from
This universal puzzle allows you to:
- get the list of objects contained in a group thus making it iterable
- convert the output of the all objects puzzle to a list thus making it iterable
- get children of some parent object

By using the dropdown you can also filter off objects of a kind (e.g. cameras, lamps, annotations, etc).
get morph factor
Returns an object's morph target factor.
You can set a morph target by passing the name as a text. In this case, you need to modify the puzzle by clicking on the gear icon and setting on the checkbox flexible target input.

set morph factor
Sets an object's morph target factor.
You can set a morph target by passing the name as a text. In this case, you need to modify the puzzle by clicking on the gear icon and setting on the checkbox flexible target input.

Example:

See the source files of the Parametric Models demo and also this video tutorial explaining the basics of using morph target puzzles.
add annotation
Adds a point of interest icon to an object that a user can expand by clicking on it to see some description. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle.

You can pass custom name as text. For this you need to modify the puzzle by clicking on the gear icon and setting on the checkbox enable "name" option.

Notes:
This puzzle creates 2 HTML elements which can be styled with CSS using their classes.

You can also style each individual annotation by assigning and accessing its elements' ids.

By default, an annotation oscured by some geometry is automatically closed and become semi-transparent. This behavior can be disabled by turning off the fade annotations option of the configure application puzzle.

You can use a more low-level alternative, the bind element puzzle, instead but it won't expand upon clicking and won't be obscured by geometry.
remove annotation
Removes a previously added annotation from an object. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle.

open annotation
Expands an annotation specified by its label.

close annotation
Closes an annotation specified by its label.

create text object
Generates a new text object according to the specified textual content and parameters.

update text object
Generates a new mesh for a text object according to specified textual content. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle.

distance
Outputs the distance between two specified objects. Does not work with lists, groups or the all objects puzzle.

get custom props
Returns a dictionary with custom properties assigned to an object.


Custom properties can be assigned in Blender by using the Custom Properties panel:

or in 3ds Max by typing properties in the Object Properties dialog:

or in Maya by using the Attributes->Add Attributes... menu in the attribute editor:


In case of Maya you need to assign additional customProperties attribute with the list of space-separated custom property names.

outline
Applies or removes the outline effect to/from a specified object. Requires enabling the outline effect in Blender, 3ds Max or Maya. Also works for a list of objects, a group (or a list of groups) or with the all objects puzzle.

Update light probe
Updates/rerenders the reflection map for the given light probe object.

Having Troubles with Puzzles?
Seek help on the forums!