Fologram will automatically synchronize all Rhino visible geometry. However, this can be problematic when dealing with parametric models because they typically contain working geometry that you don't want to see in mixed reality. Fologram doesn't synchronize any geometry in Grasshopper by default and you need to explicitly define what will be visible in mixed reality using a Sync Geometry component.
Sync Geometry Inputs
Geometry - geometry to synchronize.
Supports point clouds, lines, curves, surfaces, meshes, SubD, text dots and 3D text.
Does not support block instances or points
Material - assign a material to the geometry.
Colour swatches are converted to diffuse materials.
To assign a material with a texture, create the material in Rhino and assign it to an object. Then reference this object into Grasshopper and use the Get Rhino Material component to get the material.
Interactions - define how you can interact with the object.
Interactions are disabled by default for performance
If you want to detect taps on an object, you need to enable Select interactions
You can create a dropdown list of all valid interaction modes from the Types toolbar.
If you want to assign multiple interactions, you can use string concatenation e.g. ‘Select, Move’.
Display mode - define how the object appears in mixed reality
Defaults to rendered display
You can create a dropdown list of all valid display modes from the Types toolbar.
Transform - applies a transform to the geometry
Changing the transform input to geometry that has already been synchronized will only send the new transform. This is typically faster than streaming geometry.
Fologram will automatically interpolate between current and new transforms. This can be used to create simple animations.
Parent - applies the transform of another synchronized object to this object
If the parent object is moved, rotated or scaled the same transform will be applied to this object.
Parent transforms can be compounded with transforms applied to the child object using the Transform input.
An example of where this behaviour is useful is when you want to create handler object for moving multiple other objects e.g. To move all buttons in a UI by interacting with a single slate.
Interacting with parametric geometry
When you manipulate an interactive object in mixed reality, it will apply the transform to the object in Grasshopper and expire the component. This will cause all down-stream components to update. However the Sync Geometry component has no other internal state. When you update the inputs to the sync geometry component it recreates and re-synchronizes the object and any manipulations that were previously applied to the object in mixed reality will be lost.
Casting Synchronized geometry to other types
The output of the Sync Geometry component can be cast to the following supported parameter types:
Plane - gets the basis plane transformation of the geometry. Useful for performing orientations onto objects
Transform - gets the current transform of the object.
Native geometry type (curve, brep, subd, mesh) - gets the native geometry representation of the object.