Hypersolid User Guide

Laurent Oliversen · Copyright 2026, Laurent Oliversen. All rights reserved. · Build 2026-09-09

This web application is a tool for exploring polytopes and analyzing multidimensional datasets, all powered by an intuitive 3D interface.
This guide explains the mathematical concepts and features of the Hypersolid application.

You can download this documentation in PDF format:
https://hypersolid.app/docs/hypersolid-user-guide-en-light.pdf

1. Getting Started

1.1. How the Interface Is Organized

The application is organized into tabs, listed in the top bar.

On the left, the working tabs:

On the right, the service tabs: User Guide (this document), Upgrade, Contact.

1.2. The Workspace Floating Panel

In the Workspace tab, all settings are gathered in a floating panel that can be moved by grabbing its header, and folded away with the collapse button. It is divided into five sections, selectable through the tabs at the top of the panel:

Each section keeps its folders folded or unfolded as you navigate between them.

Some analysis tabs also offer a toggle to the scene view, which displays the 3D scene while keeping the module panel within reach.

1.3. User Modes

A selector, at the top right, chooses the user mode. The mode changes nothing in the computations: it simply hides the tabs and shapes outside its scope, to keep the interface light.

The Workspace, Data, Stats, Advanced Stats and Export tabs are visible in every mode.

1.4. Plans and Locking

Every feature belongs to a plan: Guest, Free, Hyper, Pro. Each plan strictly contains the previous one.

A feature that your plan does not cover is not hidden: it appears greyed out, suffixed with a padlock 🔒, and hovering it states the required plan. You therefore always see what the application can do, even without access to it.

The details of the plans — row and column quotas included — are found in the Upgrade tab.

2. Geometric Core

2.1. Solid Gen

The application generates geometric shapes defined by their vertices and edges in an N-dimensional space. The application supports the following shapes. Note that spheres are treated as polytopes for visualization purposes, even though they are technically smooth manifolds.
The generation and projection pipeline consists of the following steps:

The order of transformations is indeed as follows: 1) rotation, 2) shearing, 3) projection.

The dimensional axes are denoted as follows:

2.1.1. Polygons (2D)

Note: Circle and Ellipse are flat quadrics. A single circle has neither parallels nor meridians to draw, so they only expose the Mesh tracing mode and the Resolution setting.

2.1.2. Polyhedra (3D)

Note: Sphere, Ellipsoid and Torus are quadrics and, as such, have the tracing settings described in 2.1.6.

2.1.3. Polychora (4D)

2.1.4. N-Polytopes (N > 4)

For all generalized polytopes, a Dimension slider allows choosing the number of spatial axes.

2.1.5. Special

This category gathers structures that belong to no regular family.

Note: unlike the spheres that one can trace as a fibration, these last three shapes are the fibration. They are always built at the dimension of their algebra (ℂ→4, ℍ→8, 𝕆→16).

2.1.6. Quadric Settings (spheres, ellipsoids, tori)

Quadric shapes — spheres, ellipsoids, tori and fibrations — are not described by a list of vertices but by families of curves. They share the following group of settings.

Tracing mode

Circle families
Three sliders count the circles traced. Their names change with the selected shape, because what they count is not the same object:

ShapeSlider 1Slider 2Slider 3
Spheres, ellipsoids, glomesParallelsMeridiansHypermeridians
Torus (3D torus of revolution)ParallelsMeridiansVillarceau
Toratope / N-Torus — CliffordRing 1Ring 2Extra Rings
Toratope — TigerRing 1Ring 2Tube Circles
Toratope — SpheritorusParallelsMeridiansHypermeridians
Toratope — TorisphereParallelsMeridiansTube Circles
Toratope — DitorusOuter RingInner RingTube Circles
ℍ and 𝕆 fibrationsFiber Density 1Fiber Density 2Fiber Density 3

On the quaternionic and octonionic fibrations, the three sliders do not count distinct families: each one drives an arbitrary subset of the fiber directions, and the split changes with the Fiber Mode. The numbered labels are therefore the only honest ones.

Stratification

Hybrid mode (dimension > 4)

Hypermeridians and fibers

Tori

Stretching
Stretchable shapes (ellipse, ellipsoids, boxes, tori) have the Scale X, Scale Y, Scale Z and Scale W settings, which stretch the figure in the desired dimensions. Beyond dimension 4, these are joined by:

Note: only quadrics traced in mesh mode (Mesh) are eligible for tessellation.

2.1.7. Graph Operators

Four operators transform the vertex/edge graph of the selected solid. Their eligibility depends on the exact shape: truncation requires a regular vertex figure, alternation a bipartite graph, and the compound a solid that is not centrally symmetric.

To these are added two general settings of the Generator group:

2.1.8. Tessellation

2.1.8.1. Tiling Types

Enable Tessellation turns tiling on. To fill space by replicating polytopes, you can then choose between different arrangement modes through Tiling Type:

2.1.8.2. Prism

Prisms are defined by a base polytope replicated in a single direction. The corresponding vertices of each replica are connected to one another.

2.1.8.3. Honeycomb

Only certain shapes are eligible for "honeycomb" tiling, such as cubes or hexagons. Unlike the other arrangements (prisms and swarms), these tilings are compact and fill space perfectly without gaps.

2D tilings (of the XY plane) have two additional settings to enter the third dimension (disjoint sets of slices in the Z direction):

2.1.8.4. Swarm

Swarms are a generalization of prisms and honeycombs. They are the most flexible and customizable. They consist of disjoint slices of replicas in all directions, which can be connected by nexus (edges linking the corresponding vertices of each replica).
In terms of settings, the swarm combines those of prisms and honeycombs:

To these are added the settings specific to prisms: Slice Shear X, Slice Shear Y, Slice Shear Z, Flat Base, Tile Rotation and Rotation Factor.

2.1.8.5. Custom Nets

Some polytopes have predefined nets, offered in Tiling Type when the corresponding shape is selected. For example:

For cubes:

For the Elysion Vault:

2.2. Solid Style

The application uses an automatic coloring system to help identify dimensions.
Edges are colored based on their alignment with the main axes in the original high-dimensional space.
By default:

Note that these colors are determined systematically for structures with edges parallel to the frame axes. This therefore applies to hypercubes. For figures with edges inclined in several dimensions, color management is more subtle.

The stylistic settings are organized into four folders: Vertices, Edges, Faces and Background. Depth effects do not form a folder of their own: each family of objects carries its own, following its style settings.

2.2.1. Vertices

2.2.1.1. Basic Style
2.2.1.2. Vertex Depth

Activating depth effects is done by checking the Vertex Depth box. You can then control the opacity ("Alpha") of geometric elements based on their depth in 4D/3D space. These commands are located just below the Vertex Depth box. Depending on the drawn object, depth is evaluated differently:

Note: The system automatically creates a linear opacity gradient between outer and inner elements. If Outer Alpha < Inner Alpha, the gradient is disabled and the Outer Alpha value is applied uniformly to all depths.

2.2.2. Edges

Edges have the following settings:

The Edge Colors checkbox allows defining a color per edge type. If unchecked, all edges carry the color defined by Edge Default Color.
If checked, the following setting allows managing colors for edges whose orientation is not parallel to the axes.

2.2.2.1. Color Tie Break

You can define the 5 colors associated with each frame axis:

Depending on the object, these colors are used differently (typically for spheres).

The Color Tie Break list:
When an edge is not perfectly aligned with a single axis (e.g., the diagonal edges of a triangle), the color is determined by a tie-breaking rule (choice between 3 rules):

This rule applies to most polytopes. The results are hard to anticipate, but they generally allow distributing colors in different ways.

For spheres, other techniques are available:
For spheres/ellipsoids in Mesh/Stratified Edges mode:

For spheres/ellipsoids in Hopf Fibration mode (complex, quaternionic, octonionic):

2.2.2.2. Sphere Outlines

Since spheres are generated differently, they use a specific coloring logic depending on their Tracing Mode:
Mesh Edges/Circles case: the mesh colors are defined by the colors in the Edges section:

Hopf Fibration case
This advanced visualization uses the Hopf map to project the 3-Sphere (S³) as a bundle of circles (called "fibers") over a 2-Sphere (S²).

Stratified Mode (equator & poles)
In this mode, the 3-Sphere is decomposed into a series of parallel 3D shells (a collection of classical spheres), in the same way a globe is sliced by latitude lines. The colors depend on the shell's position in the nesting.

Note: stratification artifact in perspective mode
Why do inner shells sometimes appear larger than outer shells?

When using Perspective Projection, objects closer to the 4D camera appear significantly larger. If the 4D Distance is small (camera close to the object):

The colors remain correct (as they are based on rank):

If you see a Z/W shell appearing larger than an X/Y shell, it is a pure optical illusion caused by 4D perspective. Solution: modify the 4D Distance or switch to Orthographic Projection to restore the intuitive visual hierarchy.

2.2.2.3. Edge Depth

Activating depth effects is done by checking the Edge Depth box.

Edges have the same settings as vertices to manage depth: Depth Quantiles, Outer Alpha, Inner Alpha, Invert Alpha, Alpha Cutoff. See the vertex depth settings for more details.

2.2.2.4. Depth in Spheres

A distinction is made between edges (straight lines) and shells (curved).

Objects with edges (polytopes and spheres using the Mesh Edges tracing mode)
Opacity is calculated by vertex/edge distance relative to the origin in the projected 3D space (not the original 4D space). Distances are sorted and divided into N quantile bins. Each bin receives an alpha value linearly interpolated between Outer Alpha and Inner Alpha:

Note on the depth of the 2/3-Sphere:
Even though all points of a 3-sphere are equidistant from the 4D origin by definition, the 4D→3D projection breaks this isotropy. In perspective projection, circles close to the W-pole (large W) are compressed towards the 3D origin, while equatorial circles (small W) are projected further away. In orthographic projection, a parallel near the north pole lies close to the 3D origin, while an equatorial parallel lies at a unit distance (the largest). The depth gradient on a Glome in Mesh Edges mode is thus real and physically significant: it reflects the 4D depth structure as seen through the projection.

Spheres with shells (Stratified Edges and Stratified Circles)
Depth is structurally evaluated based on the mathematical index of the shell (from 1 for the geometric equator to N for the pole). Since shells are naturally nested topologies, the alpha gradient is continuous and exact. Note: the Depth Quantiles setting does not apply to shells.

Hopf Fibration: shell-based depth (without edges)
The Hopf Fibration is rendered as a set of topologically nested fiber circles (closed loops), rather than discrete edges between vertices. Each circle belongs to a mathematical shell (a torus layer), numbered from the outermost torus to the innermost central fiber. The depth alpha is computed directly from the shell index; no 3D Z-distance sorting is needed. The formula is the same as the one used for Stratified/Shell objects. Since Hopf fibers are generated in a strict topological order (exterior → interior), the mathematical structure inherently encodes depth. This makes depth management exact, continuous, and perfectly consistent with the Inner/Outer Alpha controls, without any geometric heuristics.

Limitations - Mesh Circles only
In the Mesh Circles tracing mode for the 2/3-Sphere, all circle geometry is merged into a single combined mesh without a per-circle depth shader. Depth alpha does not apply to circles, only to vertices. In contrast, the Mesh Edges mode for Spheres does support depth because a GPU shader evaluates depth = distance per vertex at render time.

2.2.3. Faces

The Show Faces toggle overlays filled polygons onto the polytope's wireframe. The engine supports two fundamental modes for detecting and generating faces:

2.2.3.1. Face Detection Methods

The application uses specialized algorithmic generators to identify the true geometric faces of the polytope. The method used depends on the polytope family. The techniques used are:

2.2.3.2. Face Rendering
2.2.3.3. Face Sampling

For complex or high-dimensional objects where topological detection is too costly, the engine can stochastically sample pairs of vertices to form triangles (or quadrilaterals/pentagons).
In the following paragraph: a face is said to be small (respectively large) when the vertices defining it are, on average, at a distance less than (respectively greater than) a given value. The notion of distance refers to the Euclidean distance between a vertex and the polytope origin (the barycenter in most cases).

Sampling is enabled with Face Sampling. The associated settings are:

Note for Regular Polytopes: For perfectly regular polytopes (Cubes, Tesseracts) where all vertices are equidistant from the barycenter, the "Small" population is mathematically empty because the normalized distance threshold is constant. In this case, only "Large" face sampling will produce results.

2.2.3.4. Face Depth

Activating depth effects is done by checking the Face Depth box.
Z-Sorting & Alpha (Painter's Algorithm)
To apply depth to faces, the engine dynamically reorganizes the faces from back to front at each frame. This enables depth-based transparency gradients:

Example usage: setting Back Face Alpha = 1.0 and Front Face Alpha = 0.2 allows you to see the solid interior of the structure through a translucent outer layer.

Coverage by polytope type:
✅ Platonic Solids (3D): triangles, squares, pentagons
✅ Archimedean / Catalan (cuboctahedron, rhombic dodecahedron): mixed polygon types
✅ 4D Polychora: via graph cycle detection
✅ N-Simplex / N-Cube / N-Orthoplex: up to available resolution
❌ Sphere / Glome: Not applicable, rendered as circles
✅ Gosset K.21 dim=5 (D5): triangles + squares, manageable count
❌ Gosset K.21 dim≥6 (E6, E7, E8): Gosset polytopes E6, E7, E8 possess a number of 2-faces (planar faces) that grows exponentially. For E6, face calculation is fast, but projecting 2160 overlapping faces from 6D creates an unreadable opaque mesh with no visual benefit. For E7 and E8, the calculation would take several seconds and the result is just as unreadable. Only D5 (dim=5, ~40 vertices) exposes its faces, as a practical compromise between visual information and performance.

2.2.4. Background

This section allows displaying background or overlay elements.

2.2.4.1. Background Color and Gradient

The gradient is then adjusted with:

2.2.4.2. Halo

The halo is a diffuse light source painted into the background, independent of the gradient. It serves to detach the solid from the background without lighting the 3D scene.

2.2.4.3. Alignment Grid

The Alignment Grid option displays a grid tangent to the peripheral vertices, useful for adjusting alignments during rotations, for example.

2.2.4.4. Reference Axes and Planes

Location: Workspace tab, Exp section, Scene Markers folder. These markers describe the scene rather than the solid, but they accompany the geometry as well as the projected data.

Axes
Axes help with orientation in the spatial dimensions.

Planes

2.3. Projection

Projection is performed in this order:

In the interface, settings are categorized by type of mathematical operation: rotation, shear, projection (with focal distance). But conceptually, dimensions are processed in cascade.

2.3.1. Views

This section allows applying specific mathematical visualizations. These rotation values reveal characteristic projections for each polytope.
The views below capture the following elements:

2.3.1.1. Unified Projection Mode

The three buttons below allow setting all projection modes (ND-4D, 4D-3D, and Camera) at once:

2.3.1.2. Front and Petrie Projection

These two projections are respectively the simplest and the most complex to implement. They have a dedicated button for immediate access.

2.3.1.3. Canonical Planes

Navigate between the different canonical planes by clicking the ◀ Prev (previous) and ▶ Next buttons. They include:

Note: with the exception of the Schlegel view, all canonical plane views are only possible in orthographic projection mode.

2.3.1.4. Base Permutations

Permuting the base axes is particularly useful in factor analysis, to visualize the distribution of points along 3 simultaneous axes among the N available axes (X, Y, Z, W, V5, V6...). See the factor analysis section for more details.

Each pre-recorded view corresponds to a 90° rotation along one, two, or three axes. This visually allows replacing a base axis (X, Y, Z) with another available axis.
The 20 most common combinations (up to dimension 6) are offered. The first corresponds to the XYZ space view. The last translates the W.V5.V6 space view.

Navigate between the different factor spaces by clicking the ◀ Prev (previous) and ▶ Next buttons.

To better understand the rotations, it is recommended to display the relative axes (Show Relative Axes) which show the orientation of the polytope and of the overlaid data.

2.3.1.5. Collapse

Optional 2D/1D flattening step.
Dedicated to the Factor visualization tab, this final mathematical step allows compressing the fully projected 3D scene (Polytope, Zodiac/Astro/MBTI/Social data, and custom data) to a 2D plane or a 1D axis. This is accomplished by forcing one or two dimensions of the 3D output to zero immediately before rendering.

Plane Projections (2D):

Axis Projections (1D):

Note: Since this projection is applied as a final filter on the 3D scene rather than in the original mathematical space, higher dimensions like W (4D depth) or V (5D+) cannot be isolated here - they are already folded into X, Y, and Z by the previous steps. Additionally, to maintain readability when points are mathematically collapsed onto identical spatial coordinates, text labels (Zodiac/Astro/MBTI/Social and custom) apply an intelligent spatial offset (derived from their original lost coordinate) to avoid visual overlapping.

2.3.1.6. Custom Views

Certain solids feature custom views (which can be modified). Navigate between views by clicking the ◀ Prev (previous) and ▶ Next buttons.

2.3.2. ND to 4D

This step reduces dimensions N > 4 to 4D (X, Y, Z, W).
The cascading pipeline of all higher dimensions is executed as follows:

Note: by its non-destructive additive logic, shearing is much more effective than rotation for unfolding higher dimensions into the visible 3D space (projected on the first three axes X, Y, Z). This is because rotations in high dimensions can occur in planes orthogonal to the projection plane of each dimension to the next, compressing any visual unfolding attempt.

The Lock Solid Rotation checkbox allows locking the polytope and making it insensitive to rotations (note: the solid remains sensitive to shears and to the focal distance of projections). This is useful for analyzing data, revealing through rotation the relative axes of invisible dimensions (W, V5, V6...) without affecting the solid itself. If a cube or a sphere is displayed as a reference, it remains stationary during rotations, while the projected data (point cloud) continues to pivot with the relative axes.

2.3.2.1. ND Rotation
2.3.2.2. ND Shear
2.3.2.3. ND Projection

The mode is chosen with the ND -> 4D dropdown.

Perspective
Higher dimensions (D > 4) are scaled by a perspective factor. Objects with higher coordinates in these dimensions are projected closer to the 4D center, while applying a cumulative shear.

By manipulating Base ND Distance and ND Distance Factor together, it is possible to customize the global perspective, as well as the spacing or clustering between dimensions (compression/dilation feel).

Orthographic
Parallel reduction to 4D. The perspective distance and depth accumulation are strictly ignored (W remains unchanged). The structure is revealed purely through linear shear. Focal distance concepts are ignored. Only the shear parameters remain to unfold the structure.

Oblique
Oblique projection is not offered in dimensions higher than 4 because it becomes very complex to configure. An orthographic projection accompanied by a rotation or a shear (circular here) is equivalent to an oblique projection.

2.3.3. 4D to 3D

The projection step aims to project 4D points (x, y, z, w) into the 3D space (x', y', z'). The W coordinate represents the "4D depth".
The processing begins with an optional linear 4D shear (Shear folder, XW, YW, ZW sliders) to the true 3D coordinates, based on the W depth. This allows tilting the 4D object into our physical dimension before the final pass of the perspective or orthographic camera.

2.3.3.1. 4D Rotation

Polytope rotation can be performed in all 3D and 4D planes. The Rotation folder exposes one slider per plane: XY, XZ, YZ, XW, YW, ZW. The last three only appear from dimension 4 onwards.

Note: the names of these sliders follow the active axis layout (see 4.3.3). Under a layout that renames the axes, XY becomes the corresponding pair.

2.3.3.2. 4D Shear

Polytope shearing can be performed in all 4D planes. The Shear folder exposes one slider per plane: XW, YW, ZW. Each one shifts the 3D position based on the 4D depth (W).

2.3.3.3. 4D Projection

Perspective
Standard 4D perspective. Objects with a higher w (further in 4D) appear smaller and converge towards the center.
The mode is chosen with the 4D -> 3D dropdown. The 4D Distance adjusts the focal length of the 4D camera. Smaller values create stronger perspective distortion.

Orthographic
Projection parallel to W. The W coordinate is completely ignored for point positions in 3D. Useful for preserving real geometric sizes.
Important: in the absence of rotation or shear, it therefore becomes impossible to visualize the 4D components. You should use the rotation and shear sliders to unfold the structure.

Oblique
Unfolds the 4D structure by shifting points based on their W coordinate along a specific 2D angle on the screen. Geometrically, oblique projection is equivalent to an orthographic projection combined with a shear, but it is offered as a distinct simplified mode, typically to reproduce Cavalier/Cabinet perspectives.

Note: manual XW/YW/ZW shearing is ignored in 4D Oblique mode since the oblique angle and scale fully define the 4D shear. The shears are therefore redundant.

2.3.4. Camera

The final phase renders the 3D wireframe on your 2D screen. Note that the 2D/1D projection in the Factor tab is performed before the camera rendering. This is why we can still orbit around the polytope and the collapsed points.

2.3.4.1. Camera Type

The type is chosen with the Type dropdown of the Camera folder.

2.3.4.2. Viewport

Viewport

Note: there is no camera shearing. This would introduce unwanted tilting to the polytopes.

2.3.4.3. Camera Monitoring

These monitors are located at the bottom of the Camera folder and display the current camera coordinates:

This data is purely informative (non-editable). To modify the camera, simply use the mouse or trackpad.

The folder finally exposes a diagnostic toggle:

2.4. Motion

Only for the Hyper plan.
The application provides tools to visualize high-dimensional geometry through motion.

2.4.1. Dynamic Effects

This folder gathers the "living" effects of the scene: pulsing glow on the selected point, valence glow, and animated camera moves.

2.4.2. Orbit (automatic camera moves)

Some actions move the camera on their own: a double-click on a point, arriving on a canonical plane, a change of base permutation. This folder decides what triggers these moves and how they unfold.

Triggers

Trajectory of the moves
By default an automatic move goes straight to the target. The settings below add motion to it, to make the transition legible rather than abrupt.

Scope
The Scope subfolder designates the gestures to which these extra paths apply:

Note: these extra paths are only visible in Dynamic mode.

2.4.3. Auto-Rotate

Automatically rotates the polytope in up to three simultaneous planes.

2.4.4. Auto-Shear

Oscillates the shear factors harmonically to make higher dimensions "pulse" in the view.

2.4.5. Interpolation

Performs a smooth transition between global state presets.

Interpolation chain
Clicking Interpolation first moves the current view to Start State, then to Mid State (if enabled) and to any steps of Mid Point States, before settling on End State.

Pace of the transition

2.4.6. Oscillation

Oscillate: if oscillation is enabled, the interpolation does not stop at End State. It reverses the sequence and loops indefinitely between Start, Mid and End. The start, mid and end pauses apply on each pass.

2.5. A Few Projection Examples

2.5.1. Tesseract

Tesseract
The tesseract has a large number of famous projections.
The two centered hexagons view (available in the Custom Views of the Projection panel):

The double oblique perspective view (available in the Custom Views of the Projection panel):

3. Data Ingestion

3.1. Dataset

Location: Workspace tab, Dataset section.

3.1.1. Synthetic Data

These datasets are random or open-source. They allow you to test the application without having to import data.

3.1.2. Reference Data

These reference datasets are purely cosmetic and serve as visual landmarks. Each one is a drop-down menu whose first entry, None, turns the display off.

Fiction fact: in the Zodiac category there is a dataset called "Malgovert" which corresponds to the psychic classification of the thirteen Zodiac clusters in the Malgovert series by Laurent Oliversen. It is somewhat like a blood-type classification, but with three variables. The points are defined by 3 coordinates representing the sensitivity of the zodiacal profiles to the 3 elysian serums. The spatial position of these clusters is actually used in the fiction.

3.1.3. Custom Points

This section allows you to manually enter up to 10 spatial coordinates (X, Y, Z, W, V5, ..., V10). The resulting point is displayed overlaid on the polytope. You can attach a label to it, duplicate it or delete it.

3.2. Points & Labels

Location: Workspace tab, Dataset section, Points and Labels folders.

These settings govern the appearance of every data point projected into the scene, whatever its origin, as well as that of their labels.

3.2.1. Point Families

The application distinguishes six families of points, which are displayed and colored independently:

FamilyOrigin
Importedthe rows of the imported dataset
Referencethe reference datasets (3.1.2)
Factor Individualsthe individuals projected in the factor plane
Factor Numeric Featuresthe projected numerical variables
Factor Categorical Featuresthe projected qualitative categories
Clusterthe centroids produced by clustering

3.2.2. Display

The Points / Display folder exposes one checkbox per family:
Show Imported Pts, Show Reference Pts, Show Fact Indiv Pts, Show Fact Num Pts, Show Fact Categ Pts, Show Cluster Pts.

The Labels / Display folder does the same for the labels:
Show Imported Lbls, Show Reference Lbls, Show Fact Indiv Lbls, Show Fact Num Lbls, Show Fact Categ Lbls, Show Cluster Lbls.

Displaying the points without the labels is the usual setting on large volumes; the reverse — labels only — is useful for reading a dense factor plane.

3.2.3. Point Style

3.2.4. Encoding by Variable

Three visual channels can be driven by a column of the dataset, rather than being fixed. This is the way to make the scene carry additional information without adding an axis.

3.2.5. Color Gradient

The Points / Gradient folder defines the color ramp used by Variable Point Color. An monitor at the top of the folder recalls the variable currently being encoded.

3.2.6. Fixed Colors

When no variable drives the color, each family carries its own color.

3.2.7. Label Style

3.3. Data Import

Location: Data tab.

3.3.1. Import CSV

You can load data in CSV with the Upload CSV button. Depending on the subscribed plan, data is limited to a certain number of rows and columns (indicated in the interface). The Clear Data button empties the imported dataset.

The expected structures are:

By default, if columns x, y, z, w, v5, v6, v7... are present in the file, they are automatically assigned to the corresponding spatial coordinates.
If no header matches the above convention, then the numerical variables are assigned in order of appearance in the file: the first numerical column is assigned to X, the second to Y, the third to Z, etc.
In case of a mix (example: a, x, y, z, b, c), then the recognized headers (x, y, z) are assigned to the 3 spatial coordinates, and the unknown headers (a, b, c) are assigned to the following spatial coordinates in this order: a -> w, b -> v5, c -> v6.

3.3.2. Role Mapping

This section allows defining the columns that will play a specific role for analytics. Some roles are interchangeable in certain scenarios.
The columns that can play roles are:

Once the roles are assigned, click Apply Roles.

3.3.3. Axes Mapping

You can assign numerical variables to the spatial axes of your choice.
Simply enter a Variable / Axis combination and click Add.

The Merge T|C columns on same axes option is only available for Hy-Performance data. It allows pooling variables suffixed with _T and those with _C. For example, instead of having two axes to display NB_T and NB_C, the option displays a single NB axis that merges the two populations (T and C). To distinguish the two populations, you must either display the labels, or go to Data Style and check the Colorize Treatment box (Class Style section).

3.3.4. Sampling

On a large file, it is often preferable to work on a sample first: the scene stays fluid and the models fit in a few seconds.

3.3.5. Test Split

If the flag_test column is not defined, it can be created and filled automatically at random by setting a test percentage (Test Size) and clicking Random Split. The Counts monitor displays the resulting split between training and test. Clear removes the split.

3.3.6. Preview

A data preview is available in the tab.
In the header are two sections.

Counting

Reserved columns
This list of tags refers to the reserved roles. It helps identify the columns playing a special role: uid, label, color, target, segment, treatment, flag_test

Column typing
For each column, a tag indicates the type of the column: numerical, categorical or boolean.

3.4. Preprocessing

Location: Data tab.

This section allows performing a number of transformations that are sometimes required to run algorithms (factorial projections, clustering, Sup ML).

The Keep Original Column checkbox allows keeping the original column alongside the transformed one: the source is kept and the transformation is written into a new <col>_t column, which Undo removes. Unchecked, the transformation overwrites the column in place. Note: keeping the original is not always desirable, as it introduces information redundancy.

A Select Column field allows choosing the column to transform; each entry there is suffixed with its type and its activation state. Each transformation is applied and canceled by means of Apply and Undo buttons.

Finally, a Re-Apply in Inference checkbox allows keeping the settings of these steps to reuse them later on new data; a necessary step when using trained models (Factor, Clustering, Sup ML) on a transformed dataset.

The Clear Preprocessing button cancels in one go every transformation applied to the dataset.

Order of the steps
The transformations are applied in a fixed order, which is that of the sections below: typing → deactivation → imputation → winsorization → discretization → category binning → one-hot encoding. The parameters are always estimated on the training rows only (flag_test other than 1), then applied to every row.

3.4.1. Column Typing

Three buttons are available to change the format of the columns.

String and bool data are very similar in their implication within the different features. The only distinction comes from the fact that a bool variable will indeed be used in linear and logistic regression models (Sup ML), whereas string data will be ignored.

Using or ignoring the column:

3.4.2. Imputation

This section allows filling empty data.

Each of the two has its own Apply and Undo buttons.

3.4.3. Winsorization

This section allows capping extreme numerical values.

3.4.4. Discretization

This section allows discretizing numerical data into bins. They thus become categorical (qualitative). Discretization is performed into quantiles.

3.4.5. Category Binning

This section allows grouping categories that have low counts and induce sparsity, and therefore instability. It is the equivalent of extreme low values for qualitative data.

3.4.6. One-Hot Encoding

This section allows transforming a categorical variable into indicator variables. Each category of the variable becomes a binary column (bool, 0/1).

4. Data Exploration

4.1. Stats

Location: Stats tab.

4.1.1. Descriptive Statistics

Contains descriptive analyses of the data imported into the application:

4.1.2. Inferential Statistics

You can perform quick statistical tests: comparing means or proportions, as well as sample size estimations.

4.1.2.1. Settings

Settings specific to power analysis:

Common settings:

The Run Testing button launches the test; Clear resets the results.

4.1.2.2. Associated Statistics

The results are presented in two areas:

4.2. Data Exp (Data Exploration)

Location: Workspace tab, Data Exp panel.

4.2.1. Selection Mode (orbit and selection)

This folder decides what the mouse (or trackpad) does in the scene, and serves as the starting point for building manual groups.

Three read-only monitors report the current state:

Saving a selection as a group is done in the Manual Groups block, just below the folder.

4.2.2. Data Scaling

Scaling reads as a pipeline of two successive stages: first the columns, then the rows. Each stage is a drop-down menu, because its options are competing answers to a single question — only one is applied.

Stage 1 — Column Scaling (per variable)

Stage 2 — Row Scaling (per point)

After Projection
This setting only appears if a Row Scaling is active. It defines when row scaling takes place:

It is better to scale before the projection to keep as much information as possible during the projections. Nevertheless, a posteriori normalization allows obtaining a spread on the unit sphere of all projected points, which greatly simplifies visual exploration — even if a lot of information has been lost in the process.

Data Zoom
This slider spaces out or contracts all projected points. It acts as a multiplier of all coordinates of the final 3D space, after scaling. It is therefore not a true normalization, but a visual zoom: the underlying ND coordinates do not change, and it consequently neither brings points into nor takes them out of an orbital (see 4.2.4).

4.2.3. Filtering

The filtering section allows displaying the projected points that meet certain conditions.

Each group also has its own internal condition, which combines its criteria with one another: Label Condition, Group Condition and Axis Condition, each settable to AND or OR.

The criteria are not applied continuously: you must click Apply to validate them, and Clear to reset everything. The Status monitor reports the current filter and the number of points retained.

4.2.3.1. Search Labels

The first group concerns the labels attached to the points:

4.2.3.2. Group Display

This group filters on column roles and computed groups. Each menu lists the available categories; leaving a menu on None amounts to not filtering on it.

4.2.3.3. Axis Value Filtering

This group concerns the properties of the projected points. It requires selecting one to three axes: Axis 1, Axis 2, Axis 3. If you do not wish to populate them all, you can leave them on None.

You can then choose which values to filter: by sign, by absolute value, or by factorial metric.

4.2.3.4. Combined Filtering

Combining the two previous rules
You can define conditions on the strings and on the axes. In this case, the AND/OR condition applies to the whole.
For example, with an AND condition, a point must respect the entered strings and respect the values on all defined axes. With an OR condition, a point must respect the entered strings or respect the values on one of the defined axes.

Influence of automatic projection planes (canonical and factorial)
When filters are active, if you click on an automatic projection plane, namely the canonical planes (e.g., vertex-first, edge-first, etc. Cf. Views) or the factorial planes (Best Contrib Plan and Best Cos² Plan), then the resulting axes are sent to the filtering axes.
This allows scanning different canonical and factorial spaces while updating the filters based on the new axes displayed on the screen.

4.2.4. Orbital

The orbital is a multidimensional filtering system based on distance. Its name is not an official mathematical term, but a reference to atomistic physics-chemistry, which defines the orbital as a zone of space within which an electron can be observed with a certain probability level. Here, the goal is to highlight the proportion of the population located within the zone delimited by the orbital.

In the application, by default, an orbital will hide the points close to the origin and leave only the peripheral points (the outliers). You can reverse the masking logic (Outlier Mode) and display only the central points (inliers).

Important remark:
the orbital acts in the ND space, before the projection and the Data Scaling. Thus, data scaling cannot take a point out of or into the orbital. An outlier has no reason to become an inlier because you zoom on the scale of the data.
There is nevertheless a way to fit the size of the solid to the dataset: use Solid Scale. This parameter comes into play at the moment the solid is created, and therefore the orbital that derives from it.

4.2.4.1. Orbital Types

The orbital is displayed with Show Orbital, and its type is chosen in the Shape menu. Three orbitals are proposed:

The Inside | Outside monitor permanently displays the number of points located inside and outside the orbital — this is the direct reading of the masked proportion.

In terms of usage, the Gaussian ellipsoid is easy to handle (a single Confidence (%) slider), but is only appropriate for point clouds with a Gaussian tendency (normal distribution in each dimension).
The "box" is a robust variant of the previous ellipsoid. But it tends to become very strict (many hidden points) for high quantile values. The quantile ellipsoid is a much softer variant of the box; it only hides points that are distant in several simultaneous directions. But its circumscribed variant (outer orbital) is very restrictive (even more than the box). You have to lower the thresholds to avoid hiding the entire cloud.

From a masking proportion perspective, we have roughly the following values:

From most tolerant to most strict: inscribed ellipsoid < n-rectangle < circumscribed ellipsoid.

4.2.4.2. Comparison between Orbital and Filtering

What is the difference between the orbital and filtering based on absolute coordinates?
Both objects serve to filter the visualization, but each has its nuances.
Number of filtered dimensions
Filtering based on Absolute Coords only applies to (at most) three axes defined in the filtering axes. The orbital, on the other hand, applies to all possible dimensions simultaneously.
Boolean condition
Coordinate filtering can use the AND or OR condition, whereas the orbital only uses an AND principle by construction.
Definition of filtering thresholds
Coordinate filtering requires formally stating the coordinate threshold value that will be checked on the filtering axes. The orbital works instead by a quantile logic (proportion of points having a coordinate less than or equal to the threshold) or probabilistically (Gaussian confidence interval based on the Mahalanobis distance).

4.2.5. Decision Boundary

This option allows displaying the decision boundary of binary logistic regression or the predictive hyperplane of linear regression.

Note: the decision boundary is only displayed if the target variable is binary; the prediction hyperplane is only displayed if the number of predictors (explanatory variables) is greater than or equal to 2. The degenerate case of the line (simple regression) is ignored.

4.2.6. Hy-Perf Cube

Allows quickly changing the axes displayed on the scene to analyze Hy-Performance datasets.
Cube Preset: these presets allow quickly mapping certain spatial axes to the transformed dataset variables (budget, uplift, ROI, etc.).

For further customization, you need to map the axes manually in Dataset / Axes Mapping.

4.2.7. Valence

The Valence logic (connectivity links) is based on a proximity analysis in space: each point is linked to its nearest neighbors, and the color of the line says which neighborhood rank it corresponds to.

Point classification
The system groups all displayed points into three main families to filter link types:

Overall logic: Data points are the mobile and analyzed elements, while Reference points, Factor points and the Polytope serve as fixed landmarks (anchors). We thus look at how user data orients itself relative to the application's internal structure.

Valence Info
If Valence Info is checked, additional information is added to the side panel when a point is clicked: you can view the various neighbors of a point as well as their respective distances, for the different projection hypotheses (ND, 3D, with or without normalization).
The Use Inverse Dist checkbox allows displaying, not the Euclidean distances, but the weightings by the inverse of the distances. Example: with 3 neighbors, the value displayed for a given neighbor is the inverse of the distance divided by the sum (over the 3 neighbors) of the inverse distances.

Neighborhood rank
The K Neighbors parameter defines the number of ranks (closest distances) to display per point; it is not the exact number of links displayed (see "Ties" below).

4.2.7.1. Pipeline Stage

The concept of neighborhood depends on the projection stage. As a reminder, the projection includes all these stages:

A neighborhood study can be performed in the initial ND scene before spatial projection. This can include or exclude a normalization step. Similarly, the neighborhood can be determined after projection, in the resulting 3D scene visible on screen. This scene can also include a normalization.

In summary, neighborhoods can be considered:
The Pipeline Stage menu designates the stage retained:

4.2.7.2. Valence Directions

A connection is established between anchor points and neighborhood points. For each anchor point, we look for the neighborhood points. The closest neighbors to the anchor point are called "rank 1". The next neighbors are rank 2, etc.

For each point P, all other points are sorted by Euclidean distance. Points at the same distance (with a 10^-5 tolerance) are grouped into a single rank. With K = 2, the two closest distance ranks are kept - this can generate more than 2 lines if several points share the same distance.

There are two different algorithms depending on the nature of the connection:
Mutual Links (Internal to a group): anchors and neighbors belong to the same point group
Examples: Reference->Reference, Data->Data, Polytope->Polytope

neighbor ranking (rank_{IJ}) and conversely (rank_{JI}).

below the K Neighbors parameter.

Unidirectional Links: anchors and neighbors are different groups
Examples for: Data->Reference, Data->Factor, Zodiac->Polytope.

nearest neighbors in the "Neighbor" group (e.g., the Polytope vertices).

In the valence rules block, located below the folder, you can add all the desired links between the groups acting as anchors and the groups acting as neighborhoods.

Handling Ties
When a rank contains more than one neighbor (a tie), the corresponding lines can be drawn dashed (click Ties Dash) instead of solid. This visually signals ambiguous neighborhoods. A line is dashed if either of its ends has a tie at its respective rank level.

receive the same rank.

dashed (if the Dashed Ties option is active in the Style panel).

Color code and distances

after all transformations (ND-4D-3D). This means that zoom and 4D
rotations directly impact the valence links.

customizable color

4.2.8. Valence and Orbital Style

Valence style (Valence Metrics / Style folder)

Orbital style (Orbital / Style folder)

4.2.9. Trajectory

Links the points of a same group chronologically, to read a movement rather than a frozen cloud.

4.2.10. Dimension Fading

On a cloud projected from a high-dimensional space, many points end up superimposed on screen while being far apart in the dimensions that are not represented. Fading makes this hidden mass visible by playing on opacity.

4.2.11. Scene Markers

The Scene Markers folder (reference axes and planes) is described in 2.2.4.4, along with the other scenery elements of the scene.

4.2.12. Analysis Module Overlays

Three folders only appear once the corresponding module has been run. They project its result into the 3D scene.

Association Rule Edge — see 5.2.4

MMM Surface & Map — see 5.10

Optimization 3D View — see 5.7

4.3. Data Style

Location: Workspace tab, Exp section, Class Style and Layouts folders.

The style of the points and labels themselves (size, shape, families displayed, encoding by variable) is described in 3.2. This section deals with what comes on top: coloring by class, shape by class, and the way axes and numbers are named and displayed.

4.3.1. Class Style (coloring by class)

Five roles can be used to color the points. They are not exclusive: they are stacked in order of priority, and the first one that applies to a point wins.

PrioritySettingSource of the color
1Colorize User Groupsthe groups drawn by hand with the lasso
2Colorize Clusterthe cluster categories
3Colorize Targetthe categories of the target column
4Colorize Treatmentthe categories of the treatment column
5Colorize Segmentthe categories of the segmentation column

A point not covered by one level falls back to the next: a point with no manual group takes the color of its cluster, and so on.

Two settings reuse palettes already defined elsewhere, rather than creating a sixth one:

Shape by class

4.3.2. Valence Colors

For valence, each line connects two points, A and B, and its color translates the neighborhood rank. Point A might rank B as its closest neighbor (Rank 1), while B might rank A differently (e.g., Rank 2). To reflect this bidirectional relationship, the displayed color is determined by the integer part of the average of both ranks: Displayed Rank = ⌊ (rankA→B + rankB→A) / 2 ⌋
This guarantees that the color reflects mutual agreement: two points considering each other close get a strong color (Rank 1), while asymmetrical relationships are naturally degraded.

4.3.3. Layouts

A layout renames the spatial axes and adapts their colors, so that the scene speaks the vocabulary of the framework under study rather than that of mathematics. The computation is in no way modified: only the dressing changes.

5. Analysis

5.1. Running a Module

No analysis module recomputes on its own: the settings are laid down first, then a button launches the computation. Every module follows the same convention.

The buttons carry the name of the module: Run Correlation, Run Profiling, Run Association and Run Large Association, Run Factor, Run Clustering, Run Estimator and Run Large Estimator, Run Forecast and Run Large Forecast, Run Performance, Run MMM and Run Large MMM, Map Personality, Run Testing, Run for optimization.

A module run on data that has changed since stays displayed as it is: it is up to you to run it again. The reminder is especially worth it after a preprocessing step (part 3.4) or a resampling.

5.2. Advanced Stats

This section complements the Stats tab. Here, the analyses cover several pairs of columns in parallel. The tab is subdivided into three parts: correlations (bivariate), profiling (over- or under-representation of certain attributes within clusters) and association rules.

5.2.1. Thresholds for Statistical Tests

You can define the desired statistical tests as well as the threshold values used to colorize the metrics. These thresholds apply to the correlation and profiling charts.

5.2.2. Correlations

5.2.2.1. Settings

Data to analyze (optional and cumulative):

5.2.2.2. Associated Statistics

Table of correlation metrics with the target
Bivariate dependence statistical tests (Pearson and equivalents, chi-square, ANOVA, etc.) with the p-value and the associated effect sizes (R2, omega squared, Cramer's V, etc.)

Table of correlation metrics between explanatory variables
Same as above, but between the explanatory variables

Effect size matrices (intra-variable correlation)
Correlation matrices (effect size) between variables.

Effect size bars vs Target
Intensity of the correlation between the explanatory variables and the target variable. Reflects the discriminating power.

Correlation matrices of the scene
Correlation matrices between spatial data or data projected by a factorial method.

For these correlation matrices, all metrics are offered:

Note: the diagonal self-comparisons of the matrix are left empty.

5.2.3. Profiling

This section is an in-depth description of the characteristic values found in groups of interest (segment, target, cluster, score quantile), with or without treatment.

5.2.3.1. Settings

Data to analyze (optional and cumulative):

The settings specific to profiling are:

5.2.3.2. Associated Statistics

Profiling table
Five tabs centralize all the metrics:

Profiling bars
A graphical version of the previous results.
The charts are grouped by profiling metric. One row per variable, with the option to sort by group.

5.2.4. Association

Association rules determine sets of categories (qualitative variables) called "antecedents" that appear at the same time as a category of interest called the "consequent". The rules only work between categorical variables.

5.2.4.1. Settings

The settings specific to association rules are:

The Run Association button launches the extraction in the browser, Run Large Association delegates it to the Python engine (see 5.1), and Clear resets the results.

5.2.4.2. Associated Statistics

The results table lists the rules as well as the associated metrics (support, confidence, lift, etc.).
The ⋀ symbol means intersection (logical AND).

5.3. Hy-Personality

Here is the "rigorous" method to determine which Zodiac signs resemble you the most!

A personality questionnaire built into the application can be filled in online. It combines themes present in several frameworks used in business (Social Style, DISC, MBTI) as well as the lexical descriptions of the astrological zodiac.

Beware, this is not a psychological/psychometric analysis protocol. It is an illustrative example showing the value of factorial projections applied to questionnaires of all kinds. The goal here is to show visually the lexical resemblances between different famous frameworks.

Filling in the questionnaire and projecting the results thus allows you to visualize the concepts or attributes shared between your answers and the profiles present in the different frameworks. This approach relies on a PCA or an MCA of the answers of the different profiles to the 18 questions of the form. It is a dataset provided by the application. It is free, but cannot be modified in this interface. The answers you add, on the other hand, are customizable.

Procedure: answer the 18 questions by moving the slider left or right (5-degree scale) according to the answer that suits you best. If you hesitate, you can leave the slider in the middle (balanced or neutral answer).
Once finished, enter a label and click Submit to project the results into the factorial hyperspace!

5.3.1. Data Sources

The questionnaire can come from different sources:

The Form Import section offers Upload CSV to load a file of answers, and Clear All Respondents to erase all imported respondents at once.

5.3.2. Projection Techniques

The answers to the questionnaire (from all sources) are projected using a PCA or an MCA already trained with the application's reference data.

The Map Personality button launches the projection; Clear resets the results.

5.3.3. Reference Points Filtering

The Reference Filtering section allows choosing which reference points are displayed. Each category is subdivided between Features, which correspond to the description criteria, and Profiles, which are their outcome — a combination of several criteria.

The available checkboxes are:

Example: the Extraversion and Introversion points, which define the orientation of energy, are MBTI Features, whereas INTP is an MBTI Profile defined by the presence of the "I" category (for Introvert).
Likewise, Fire is a Zodiac Feature, whereas Aries is a Zodiac Profile.

5.3.4. Associated Statistics

Radar of answers by profile
Each vertex of the radar represents a question (integer values from -2 to 2). Two profiles are superimposed in this radar to visualize the overall resemblance of their answers to the questionnaire.

Answers of all respondents by question
The bar chart gives the answer of all respondents to the selected question.

Correlation matrices of the scene
Correlation matrices between raw answers to the personality questionnaire (integer values from -2 to 2), and also between projected answers (factorial coordinates).

5.3.5. Example of use: inverted zodiac

Go to Modeling / Personality
In the Personality Map panel, leave the default settings:

Fill in the questionnaire, give a name and click Submit. You are then switched to Workspace.

Go to the Dataset section of the Workspace panel, Points / Display folder, and check only:

Go to the Exp section of the Workspace panel.

Just below, in the Filtering section, check Filter then, in the Personality list, choose Zodiac Profiles.

From now on, clicking the point corresponding to your answer opens a side panel with statistics. You can consult the ND Valence and ND-Norm Valence charts, which state your "proportion" of each Zodiac sign (seen as your nearest neighbors in terms of answers).

To get a better sense of the distances, at the very bottom of the panel, after the valences, click the Best Cos² Plan button. This displays the space in which your answer is spatially best represented. The nearest neighbors then tend to move closer visually, which is more consistent.

5.4. Factor

This tab allows applying dimensionality reduction methods to the points imported in CSV, or to the datasets already built in (synthetic data, answers to the personality questionnaire).
Simply choose the number of factorial axes retained and the technique used.

5.4.1. Factorial Axes

5.4.2. Factorial Techniques

Scope of the computation and overlays

The Run Factor button launches the projection.

Once the data is projected, it can be visualized in the Workspace tab, and is displayed on top of the polytope that serves as a visual anchor. It is recommended to use a simple cube (or even a tesseract for 4D analysis) or a sphere to make exploration easier.

5.4.3. Associated Statistics

In the Factor tab, you will find a number of statistics relating to the factorial method:

Note that the factorial axes have a correspondence with the spatial axes:

And so on with the Z, W, V5, V6 axes, etc.
Thus, when analyzing contributions or squared cosines, the value of the drop-down list corresponds to the factorial axis. This is why they are displayed in the form "X (PCA_1), Y (PCA_2)" or "X (MCA_1), Y (MCA_2)".
But if the dataset contains spatial coordinates (also named X, Y, Z), then you end up in situations where the X, Y, Z axes (of the dataset before projection) contribute to the X axis (which is in fact the first factorial axis, after projection). You must therefore keep in mind what belongs to the input dataset and what belongs to the result of the factorial projection in the target space (and which may share the same letters).

5.5. Clustering

Clustering allows grouping points by spatial proximity.

5.5.1. Data Sources

The data source to cluster carries nuances that enable or disable certain options.
Numerical data:

Factorial data:

Personality data (Hy-Personality):

5.5.2. Methods

Clustering methods

Options specific to the Spatial Data and Personality Form sources

Options specific to the Imported Data and Factor Data (Individuals or Features) sources

Common options

5.5.3. Pre-KMeans

The first stage consists in applying a K-Means method to the initial dataset.

5.5.4. HCA (Hierarchical Cluster Analysis)

The second step is a hierarchical cluster analysis (Ward's method) applied to the centroids of the Pre-KMeans.

5.5.5. Final Cleaning

Depending on the spatial distribution of the data, HCA methods can suffer from questionable allocations for the points located at the periphery of the clusters.

The Run Clustering button launches the algorithm; the Clear button resets the results.

5.5.6. Cluster Ellipsoids

A covariance envelope can be drawn around each cluster, in the 3D scene. This is the most direct visual reading of the quality of a segmentation: two overlapping envelopes signal ambiguous clusters.

5.5.7. Associated Statistics

Quality metrics
The quality metrics displayed are: silhouette coefficient, Davies-Bouldin Index (DBI), Calinski-Harabasz Index, Dunn Index

Charts
The following section displays the dendrogram of the HCA, and the acceleration curves of the between-class inertia. Then comes the distribution of the population by cluster, the boxplots by spatial variable, and the contingency matrices with the variables of interest (Segment, Target, Treatment).

5.6. Sup ML (Supervised Machine Learning)

Sup ML allows training regression (linear) and classification models.

5.6.1. Settings

The Run Estimator button launches the algorithm; the Clear button resets the results.

5.6.2. Associated Statistics

The results are available in two tabs, one per sample (Train, Test).

Linear regression
The quality metrics displayed are: R2, MAE, RMSE.
A panel displays the coefficients of the regression.

Logistic regression
The quality metrics displayed are: Balanced Accuracy, Macro Precision, Macro F1, ROC AUC, Gini.
A panel displays the confusion matrix, then the coefficients of the regression (and the associated odds ratios).
Finally, two curves are offered: ROC and lift (cumulative gains).

Scores and score quantiles
The model's scores are discretized into score quantiles. These quantiles can be used as a group variable in profiling.

5.7. Optimization

This module looks, among the individuals of the dataset, for those that maximize or minimize a target variable, under the constraints defined by the active filters. The result can be projected into the scene (see 4.2.12).

5.7.1. Settings

The Run button launches the solving; Clear resets the results.

5.7.2. Associated Statistics

The results list the individuals retained, the value reached by the target, and the gap to the theoretical optimum. The associated 3D view (Optimization 3D View, see 4.2.12) allows displaying either the selection plane or the polytope of admissible solutions.

5.8. Forecast

The time series forecasting model relies on a Holt-Winters exponential smoothing.

5.8.1. Settings

The Run Forecast button launches the computation in the browser. Run Large Forecast delegates the computation to the remote Python engine: this is the route to take on large volumes, where the local computation becomes too slow.

5.8.2. Associated Statistics

Metrics
The results consist of visualization curves as well as quality metrics (in the training and back-test samples): MAE (mean absolute error), RMSE (root mean squared error), MAPE (mean absolute percentage error).

Charts
The charts display the actual, fitted and predicted curves.
A decomposition of the 3 pillars of the built function is also available: the level (the height), the trend (the slope), the season (the periodicity).

5.9. Hy-Performance

Feature coming soon.
Goal: study the effectiveness of a treatment (clinical trial or marketing action) on a population, by means of an A/B test integrating statistical evaluations.

5.9.1. Data Sources

Granular data or aggregated data

5.9.2. Settings

Type of analysis: absolute or incremental

Analyzability thresholds (reliability of the measures and volume-related instability)

Incremental amount computations

ROI handling

5.9.3. Associated Statistics

PERIOD
Period of aggregation for the groups of actions and the financial KPIs: Q1, Q2, Q3, Q4, H1, H2, FY

AGG_TYPE
Is the aggregate evaluated on actions (before grouping, coded "BG") or on groups of actions (after grouping, coded "AG")

YEAR
Year of the action

HALF_YEAR
Semester of the action

QUARTER
Quarter of the action

MONTH
Month of the action

WEEK
Week of the action

DAY
Day of the action

STRATEGY
Strategy followed by the action

FLAG_OUT
Remove from analysis

LEVEL1
Typology of the action (1st level category)

LEVEL2
Typology of the action (2nd level category)

LEVEL3
Typology of the action (3rd level category)

LEVEL4
Typology of the action (4th level category)

SEGMENT
LEVEL1 - LEVEL2 - LEVEL3 - LEVEL4

ACTION_GROUP
(Month) - Strategy - Segment - ROI Flag - (ROI Trend)

Month and Trend are only IApearing for certain ROI flags and to_group flag

MARGIN
Margin Profit (in % of outstanding)

AMOUNT_FACTOR
Factor used to assess the profit from margin and amount: PROFIT = AMOUNT AMOUNT_FACTOR MARGIN
Useful when margins depend on two multiplied variables (eg. monthly subscription price and number of months subscribed)

UNIT_COST
Unit communication cost

BUDGET
Budget of the action (unit cost * nb targets)

ANALYZABLE_BUDGET
Part of the budget (in €) that is analyzable (ROI_FLAG is not "NA")

ANALYZABLE_BUDGET_RATIO
Part of the budget (in %) that is analyzable (ROI_FLAG is not "NA")

POSITIVE_ROI_BUDGET
Part of the budget (in €) that is profitable (ROI_FLAG is "ROI+")

POSITIVE_ROI_BUDGET_RATIO
Part of the budget (in %) that is profitable (ROI_FLAG is "ROI+")

POS_ROI_ANA_BUDGET_RATIO
Part of the analyzable budget (in %) that is profitable (ROI_FLAG is "ROI+")

NB_T
Nb of Targets

NB_C
Nb of Controls

CG_SIZE
Control Group Size (%)

NB_CONV_T
Nb of Converted Targets

NB_CONV_C
Nb of Converted Controls

CONV_RATE_T
Conversion Rate Target = Conv Rate Target

CONV_RATE_C
Conversion Rate Control = Conv Rate Control

UPLIFT_NB
Uplift in volume (delta rates in percentage points)

UPLIFT_NB_RATIO
Uplift in Volume Ratio (%)

AMOUNT_T
Amount (Total Converted Amount) Target

AMOUNT_C
Amount (Total Converted Amount) Control

SQUARED_AMOUNT_T
Squared Amount (Total Squared Converted Amount) Target

SQUARED_AMOUNT_C
Squared Amount (Total Squared Converted Amount) Control

WEIGHTED_SQUARED_AMOUNT_C
Scaled Squared Amount Control

PROFIT_A
Profit All Customers (Targets + Controls)

PROFIT_T
Profit Target

PROFIT_C
Profit Control

AVG_AMOUNT_A
Average Amount per Customer

AVG_AMOUNT_T
Average Amount per Target

AVG_AMOUNT_C
Average Amount per Control

AVG_AMOUNT_CONV_A
Average Amount per Converted Customer

AVG_AMOUNT_CONV_T
Average Amount per Converted Target

AVG_AMOUNT_CONV_C
Average Amount per Converted Control

VAR_AMOUNT_T
Variance of the Amount Target

VAR_AMOUNT_C
Variance of the Amount Control

VAR_AMOUNT_CONV_T
Variance of the Converted Amount Target

VAR_AMOUNT_CONV_C
Variance of the Converted Amount Control

UPLIFT_AMOUNT_RATIO
Uplift in Amount Ratio (%)

UPLIFT_TOTAL_RATIO
Total Uplift Ratio (%)

CI_VALID_T
Is the Confidence Interval of RR valid?

CI_VALID_C

CI_SE_NB_T
Standard Error of the Resp Rate Confidence Interval

CI_SE_NB_C

CI_LOWER_NB_T
Lower bound of the Resp Rate Confidence Interval

CI_LOWER_NB_C

CI_UPPER_NB_T
Upper bound of the Resp Rate Confidence Interval

CI_UPPER_NB_C

CI_SE_AMOUNT_(CONV)_T
Standard Error of the Average Amount Confidence Interval *[1]

CI_SE_AMOUNT_(CONV)_C

CI_LOWER_AMOUNT_(CONV)_T
Lower bound of the Average Amount Confidence Interval *[1]

CI_LOWER_AMOUNT_(CONV)_C

CI_UPPER_AMOUNT_(CONV)_T
Upper bound of the Average Amount Confidence Interval *[1]

CI_UPPER_AMOUNT_(CONV)_C

VOLUME_INCREASE_FACTOR
("VOL_INC", see *[2])
Strategy to increase volumes: it impacts NB, NB_CONV, CONV_RATE.

Note: this metric is not visible in the output. It's only an intermediate within the code.

Z_STAT
Z Statistic

Z_NORM_PROBA
Cumulative probability of the Z-Stat regarding the Normal distrib

Z_NORM_P_VALUE
P-Value of the Z-Stat regarding the Normal distrib

ODDS_RATIO
Odds Ratio of the CONVancing contingency table

Z_HYPERGEOM_PROBA
Cumulative probability of the Z-Stat regarding the Hypergeometric distrib

Z_HYPERGEOM_P_VALUE
P-Value of the Z-Stat regarding the Hypergeometric distrib

P_VALUE_NB
Retained P-value for volume significance

SS_NB
Is the uplift in volume significant?

T_STAT_(CONV)
T Statistic *[1]

T_NORM_PROBA_(CONV)
Cumulative probability of the T-Stat regarding the Normal distrib *[1]

T_NORM_P_VALUE_(CONV)
P-Value of the T-Stat regarding the Normal distrib *[1]

T_STUD_PROBA_(CONV)
Cumulative probability of the T-Stat regarding the Student distrib *[1]

T_STUD_P_VALUE_(CONV)
P-Value of the T-Stat regarding the Student distrib *[1]

P_VALUE_AMOUNT_(CONV)
Retained P-value for amount significance *[1]

SS_AMOUNT_(CONV)
Is the uplift in amount significant? *[1]

SS_DOUBLE_(CONV)
Means "Significant in both amount and nb" *[1]

SS_ZERO_(CONV)
Means "Not Significant in neither amount nor nb" *[1]

SS_DIV_(CONV)
Means "Significant in amount (or nb) but not in nb (or amount)" *[1]

RAW_ANALYZABILITY
Is the action / action-group roughly analyzable regarding the CG existence and the Nb of Conversions?

CI_LOWER_NB_C_WITH_CONV_RATE_T
Theoretical value of the Control's lower Conf Interval bound if we assume that CONV_RATE_C = CONV_RATE_T

TRUE_ZERO_CONTROL
Is the zero number of Converted Control a reality or an issue due to low volume?

NET_ANALYZABILITY
Is the action / action-group deCONVitely analyzable regarding the Conversions and the statistical significance stability?

NOTE FOR MULTI-EFFECT

IA_PC_AMOUNT
Credit: additional Amount per customer based on amounts
Insurance: additional probability per customer based on amounts

IA_PC_NB
Credit: additional Amount per customer based on volumes
Insurance: additional probability per customer based on volumes

IA_COHERENCE_FLAG
Credit: retained formula for additional Amount
Insurance: retained formula for additional probability

"2" means amount-based formula
"1" means volume-based formula
"0" means unsignificant (IA = 0)

The "New" method is also named "coherence rule": a action is coherent if, when increasing UPLIFT_NB, we do not decrease AVG_AMOUNT_CONV_T.

The "Old" method is also named "retake rule": if we are not significant in amount, then we might "retake" the IA from the significance in nb.

IA_PC
Credit: retained additional amount per customer
Insurance: retained additional probability per customer

IA
Credit: retained additional Amount
Insurance: retained additional probability

ROI_PC
ROI per customer

Note for multi-effect
> The global-effect-ROI-PC is calculated by computing the underlying effect-IA-PC (multiplied by their respective margin/lifetime) and by substracting the unit cost once! → it's not the simple sum of the underlying effect-ROI-PC!

ADD_PROFIT_PC
Additional Profit per customer

ROI
Total ROI

ADD_PROFIT
Total additional Profit

ROI_PU
ROI per unit invested

ROI_PU_ANA
ROI per unit invested and analyzable

ROI_MAX_PC
Theoretical maximum ROI per customer (if control never get Converted)

ROI_MAX
Theoretical maximum ROI (if control never get Converted)

ROI_FLAG
Typology of ROI/IA (situations of profitability)

TO_GROUP
Is the action groupable?
We want to group the actions that are not analyzable or not significant

ROI_AMOUNT_WITHOUT_SIGNIF
Theoretical ROI (based on amounts) without significance

ROI_NB_WITHOUT_SIGNIF
Theoretical ROI (based on volumes) without significance

ROI_TREND
Has the action (groupable) a positive or negative trend of ROI?

5.9.4. Methodology Guide

Hy-Perf is designed to refuse to conclude when the data does not allow a conclusion. This section explains the statistical safeguards, so as to read the results correctly - and their silences.

5.9.4.1. Analyzability: when the tool refuses to conclude

Each action must pass decoupled checks before an uplift or a ROI is retained:

An NA is not a bug: it is the tool telling you that the sample cannot answer the question yet. NA actions are re-tested under a simulated volume increase (Vol Increase Method / Vol Increase Factor): some are "salvageable" - to be run again later with more volume - rather than dead ends. The budgets of non-analyzable actions are excluded from the analyzable KPIs instead of being counted silently.

5.9.4.2. Multiplicity and the alpha = 0.1 default

Each action x effect x segment is tested at Alpha = 0.1 by default, with no correction between tests. This default is deliberate: the product philosophy is one decision per action, not mass discovery. But it is permissive for budget decisions: test 100 actions with no real effect and about 10 will still come out "significant" by chance. The dashboard displays this expected number of false positives next to the aggregates.
When you screen a large catalogue of actions and the aggregate picture prevails, switch Multiplicity to BH-FDR (Statistical Inference panel): each significance flag is re-gated on the Benjamini-Hochberg cutoff, controlling the expected share of false discoveries at alpha, and propagates through to the IA and ROI.

5.9.4.3. Winner's curse on aggregates

Aggregated KPIs (analyzable budgets, total incremental amounts, bucket ROI) are built from the actions that passed the significance filter. This selection is optimistic by construction: among noisy measures, those that pass are more often the ones that got lucky upwards. The dashboard therefore brackets the aggregate: total ROI with the significance filter vs without (ROI_AMOUNT_WITHOUT_SIGNIF / ROI_NB_WITHOUT_SIGNIF columns) - the truth generally lies between the two.

5.9.4.4. SRM — declaring the expected target/control ratio

If your design assigns target and control according to a known ratio (e.g. 90/10), declare it through the Expected Ratio (T/C) control (srm_expected_ratio; 0 = disabled). The engine then runs a sample-ratio-mismatch chi-square test per action (SRM_CHI2 / SRM_P_VALUE / SRM_WARNING columns): a real split that deviates significantly from the declared ratio most often signals a contaminated control group, the most frequent silent killer of A/B analyses in CRM. Without a declared ratio, the control stays disabled and never raises a false alarm.

5.10. MMM

The MMM (Marketing Mix Modeling) is a powerful tool that allows evaluating the contribution of investment levers to a time-based target variable.

5.10.1. Settings

The investment channels
This section allows telling the model which columns represent the marketing levers. This assignment is indispensable for the model to work correctly.

Baseline
The baseline is the "natural" contribution to the target variable when all other investments stop.

Adstock

Ridge

ROI Prior

Back-Test

5.10.2. Associated Statistics

Metrics
The results consist of visualization curves as well as quality metrics (in the training and back-test samples): R2, MAE (mean absolute error), RMSE (root mean squared error), MAPE (mean absolute percentage error).

Charts
The first chart represents the slices of contributions.
The second table exposes the contributions of each channel, as well as a few associated metrics (adstock, delay, total investment, variance inflation factor, etc.).
The third chart displays the response curves (saturation curves) that represent the evolution of the contribution as a function of the budget. Note the presence of a particular point on each curve: the elbow, that is, the moment when the curve starts to plateau rapidly.

5.10.3. Methodology Guide

Hypersolid's MMM runs entirely in your browser: no cloud, no data transfer, no MMM software to install - a complete Marketing-Mix Model on local data. This autonomy comes with a duty of honesty: this section states what the model needs, what its numbers mean, and when NOT to believe them.

5.10.3.1. Data prerequisites
5.10.3.2. Reading the results

For business profiles:

5.10.3.3. Three structural limits
5.10.3.4. When NOT to believe the model
5.10.3.5. Validation and reproducibility

The engine is benchmarked against Meridian's public simulated dataset: the channel rankings are compatible in the sense of the confidence intervals, and the contribution levels fall within the Bayesian band as soon as weak ROI priors are used (the gap without priors is documented, with its causes). A seeded sensitivity analysis verifies that the ROI ranking is stable under resampled noise. Every result is stamped with an engineVersion and a configHash: same data, same config, same version ⇒ same output, verifiable.

5.11. Hyperion

6. Import / Export

Location: Export tab. The analytical extractions are also accessible from each analysis tab.

6.1. Solid

6.2. Config

You can export and later re-import the workspace configurations, that is, the whole set of settings of its panels.

Export

You can also export only a sub-part:

Import

6.3. Scene

6.4. Analytics

Location: Export tab, or at the top right of each analytical tab (Stats, Factor, Clustering...).

You will find all possible extractions, organized by module:

6.5. PDF Recap

6.6. Info Points

When you click on a point in the scene, a number of data items are displayed in the right side panel. At the very bottom of this panel there is a button to download this data.