<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
v_{rot} = v \cos \theta + (k \times v) \sin \theta + k (k \cdot v) (1 - \cos \theta)
Intersection-Aware Asset Placement using Computational Geometry and ML
Most existing engines and DCC tools still lack robust intersection-aware asset placement, even within modern PCG workflows. Manual placement with geometric perturbations remains time-consuming and inefficient. To address this, we introduce a system that combines computational geometry with pipeline-engineering techniques to support large-scale asset processing.
Intersection Analysis and Packing
Our approach incorporates UV-based and general packing strategies, including Poisson disk sampling and scale-aware classification, expressed using computational geometry rather than conventional algorithmic heuristics.
The Poisson disk sampling can be represented as:
$$
d(x_i, x_j) \ge r, \quad \forall i \neq j
$$
where $r$ is the minimum distance between samples.
Scale-aware classification assigns assets to bins based on their bounding box sizes:
$$
\text{bin}(i) = \left\lfloor \frac{\text{size}_i}{\Delta} \right\rfloor
$$
where $\Delta$ is the scale interval.
Direction-Aware Placement
To support semantic directional awareness, we apply Rodrigues’ rotation formula to align an object’s primary directional vector $\mathbf{v}$ to a target normal $\mathbf{n}$:
$$
\mathbf{v}_{\text{rot}} = \mathbf{v} \cos \theta + (\mathbf{k} \times \mathbf{v}) \sin \theta + \mathbf{k} (\mathbf{k} \cdot \mathbf{v}) (1 - \cos \theta)
$$
where $\mathbf{k}$ is the unit rotation axis and $\theta$ is the angle between $\mathbf{v}$ and $\mathbf{n}$.
Alternatively, rotations are represented with quaternions:
$$
\mathbf{v}' = \mathbf{q} \mathbf{v} \mathbf{q}^{-1}, \quad \mathbf{q} = w + xi + yj + zk
$$
Matrix transformations are applied using matrix inversion:
$$
\mathbf{T}^{-1} = (\mathbf{R} \mathbf{S})^{-1} = \mathbf{S}^{-1} \mathbf{R}^{-1}
$$
where $\mathbf{R}$ is the rotation component and $\mathbf{S}$ is scaling.
ML-Based Pipeline Automation
We integrated MCP, an ML-based API, to automate scaling and direction-aware initialization, forming an AI-assisted geometry pipeline. This reduces manual intervention during dataset creation and ensures consistent placement across large-scale assets.
User Abstraction Layer
A high-level abstraction layer enables:
- Batch import/export
- Structured directory output
- Automated PBR-compatible texture assignment
- HLSL shader blending
- Handling of inconsistent naming conventions
- ARM/AO texture linking
These features are not available in current engines or DCC plugins.
Automated Asset Retrieval
We implemented an automated system using the FAB API:
- Supports token-based bulk downloads by UID or keyword
- Saves assets to specified directories via command line
- Facilitates efficient dataset creation for 3D geometry research
Note: FAB recently limited API access for uninitialized users, but authenticated workflows remain functional.
Future Work
A preliminary version of this work is under development as a research paper. Future sections will include:
- Multi-DCC engine integration
- Performance lookup tables
- Analysis of boundary-case behaviors
This aims to establish a generalizable and systematic methodology for intersection-aware asset placement.
Top comments (0)