A Hierarchical prOduct Model 3D vieweR.
HOM3R (Hierarchical prOduct Model 3D vieweR) is a 3D viewer specialized in complex hierarchical product models. It has been developed by the 3DI-Diana research group and is one of the main contributions of Daniel González-Toledo's doctoral thesis "3D Interaction with Complex Objects".
This viewer has evolved from its initial conception to its current state, which consists of several different software pieces, many of which are released as open-source software.
Firstly, a library in C# language has been created, named (HOM3R-Engine), which implements novel interaction techniques, occlusion management, and information representation aimed at operating with low-cost interaction devices (such as keyboard, mouse, or touch devices). These techniques rely on the existence of a product model, as proposed in our work (see bibliography).
Secondly, we have the actual viewer, named (HOM3R-Viewer), which integrates our library offering all its functions. This viewer has been developed in Unity, allowing its deployment on multiple platforms. Throughout our projects, we have developed different versions of the viewer adapted to different applications and platforms. These developments have been validated during the Use-It-Wisely and PLUGGY projects on desktop, web, and mobile platforms, both in augmented reality and virtual reality environments.
You may have wondered what complex products are for us. Many products developed or used by different industries can be described as an assembly of a set of components or parts. A model may consist of a set of 3D objects representing the pieces of the product and the information needed to assemble the pieces into the final product.
We say then that these virtual objects are complex for a dual reason. Complex because they are composed of multiple parts hierarchically related and because they have intricate geometries where some parts hide others, creating areas of complicated access. Examples of these complex products can be an engine, a gas turbine, a mobile phone, a communications satellite, an anatomical model, or a metal structure, among others.
This section presents the interaction strategies implemented in HOM3R to address the following challenges: (1) navigation around the product, (2) hierarchical selection, (3) occlusion management, (4) 3D labelling. These interaction techniques will allow the user to discover and access every part of the complex product to have a global view of the product, understand the spatial relationship between the different parts, and obtain relevant information to analyze in detail a specific part.
The algorithms implemented to navigate around the product allow the user to manipulate the virtual camera, using the mouse, with a restricted set of trajectories. Currently, the tool supports two different strategies for camera movements, both based on ellipsoidal coordinates: spheroidal and ellipsoidal trackball.
Both are novel navigation techniques based on virtual ellipsoids, thus extending the repertoire of techniques within the Virtual Trackball family. These techniques, adapted to the intrinsic rotation axis of the object and to the proportions of the object, seek a more intuitive and efficient approach to interact with 3D objects with low sphericity.
These navigation systems have 3DoF (see Figure 2), the camera translation movements follow a path marked by the ellipses resulting from horizontal cuts in the ellipsoid (a), with the camera heading towards the product. Furthermore, these navigation systems allow the camera to circularly orbit around the axis (b) and zoom in and out with respect to the object (c).
The presented navigation systems are especially suitable for elongated products with a certain axial symmetry, e.g., a turbine rotor or a rocket. In this way, the shape of the navigation trajectory is adjusted to the bounding box of the product. Thus, while ellipsoidal navigation adapts to all three dimensions of the object's bounding box, spheroidal navigation adapts to only two of them. This is because a spheroid is a particular case of an ellipsoid, in which two of its axes are equal. On the other hand, Spherical coordinates are a particular case of the ellipsoidal coordinates, which means that this navigation system is also suitable for products without a privileged axis.
Additionally, HOM3R offers a pan navigation, which allows the user to drag the virtual camera in a 2D plane, moving the centre of the cylindrical or ellipsoidal coordinate system.
Another notable feature supported by the 3D viewer is automatic navigation with smooth camera movements. The HOM3R interface is user-centred; the supported features have been designed with the main purpose of improving usability. In this way, the tool implements an automatic navigation algorithm with gradual transitions, where smooth camera movements are implemented to provide the user with feedback of his/her actions and, therefore, make him/her aware of what’s happening at every moment, avoiding abrupt transitions, which can cause the user to feel lost. This smooth mechanism is used when the camera moves to a predefined position, when switching between navigation strategies, and when focusing on a specific part.
Selection over the product is based on mouse ray-casting. This 3D interaction feature allows the user to
highlight a specific product part or a set of parts (by a mouse click). Selection is a first step for further
manipulation tasks, such as focusing on a specific part, visualization of the selected part without occlusions
or extraction of certain information regarding the chosen part, as the following sections will describe. The
selection algorithm allows for the selection of a product part at any hierarchy level, which results in the
automatic selection of all nodes that are children of the current selection.
To manage occlusions between different parts of a complex product, hom3r implements two different algorithms:
adaptive transparency and exploded views.
The adaptive transparency algorithm has been implemented to discover a selected part that is totally or
partially occluded by other parts from a specific viewpoint by making transparent a set of areas of the
occluding parts, as shown in Figure 3. This feature offers the possibility to visualize a hidden part without
losing the spatial relationship between the different parts of the product.
The exploded view feature is based on an explosion algorithm that shows the main parts of the product
separated by a specific distance, following the assembly information to preserve spatial relations within the
product. An example is shown in Figure 4. The exploded view can be global (separating every component of the
object) or local (separating just a selected part). With this feature, the user can discover and access most
parts of the product without the need to make transparent or remove other parts.
Additionally, the tool offers the possibility to remove a selected part to access a hidden part.
In the same way as in the navigation features, these occlusion techniques follow the principle of gradual
transition to provide smooth feedback to the user. In this way, the explosion will be carried out with smooth
movements of the 3D models, and the deletion and transparency of parts are made with a gradual fade out.
Labels provide information regarding the description or identification of a specific product part or any
additional information present in the product model that is linked to the 3D geometry (see Figure 5). Labels
behave as 2D objects that are placed in the 3D environment and connected to the product by a leader-line,
which always faces towards the camera. A physics-based algorithm has been implemented to maximize visibility
of the labels while changing the viewpoint by avoiding leader-line crossing, avoiding occlusion between labels
or from the product, and trying to keep labels inside the viewport. Labels can be automatically positioned in
a centred position on the surface of the parts or located at any specific point or area of one part. Once
placed, labels can be manually moved in screen space to customize the view.