What is hom3r?

A Hierarchical prOduct Model 3D vieweR.


The Hierarchical prOduct Model 3D vieweR (hom3r) is a 3D viewer specialized for complex hierarchical product models. 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 product parts and the information needed to assemble the parts into the final product. The model may also contain additional information relevant to the product context; this information may be linked to specific parts of the product or to specific areas in the product geometry.
The 3D viewer presents a number of challenges:

  • Selection and manipulation of product parts could be made at different levels within the hierarchy. One may want to manipulate or select the whole product, a single part or even a small area within one part. The viewer should provide some way to work at different levels within the product hierarchy.
  • Some parts may not be visible or accessible for selection and manipulation. This is typically the case of internal parts covered by container parts or hulls. The viewer should implement occlusion management techniques to allow access and discovery of all product parts.
  • Some information of the product may be linked to a given part or even to specific points or areas on the 3D geometry, requiring some mechanism to link the information with its correct place on the geometry.
  • Navigation around the 3D model of the product may depend on the geometrical characteristics of the product. Generic navigation metaphors may not be suitable for particular geometries, such as elongated objects, where the three main axes are not equally relevant.
  • A modular architecture with easy expandability, where modules can communicate through a centralized message server.
  • A package compatible with most web browsers and providing a flexible API for easy interface through JavaScript.

Supported features

This section presents the interaction strategies implemented in hom3r to address the following challenges: (1) hierarchical selection, (2) navigation around the product, (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 analyse in detail a specific part.

1. Hierarchical selection

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.

2. Navigation

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: cylindrical and ellipsoidal.
The cylindrical navigation system has 3DoF (see Figure 1), allowing the user to translate the point of view along a path parallel to the symmetry axis (b), orbit the camera around the product (b) and zoom in and out with respect to the object (c). The ellipsoidal navigation system also has 3DoF (see Figure 2). In this case, 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, as in the cylindrical navigation, the ellipsoidal navigation allows 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. 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 a 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.

3. Occlusion management

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.

4. 3D labelling

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.