Intersection-Aware Asset Placement using Computational Geometry and ML

Published: (December 11, 2025 at 06:50 PM EST)
2 min read
Source: Dev.to

Source: Dev.to

v_{rot} = v \cos \theta + (k \times v) \sin \theta + k (k \cdot v) (1 - \cos \theta)

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 constraint:

[ 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 can be 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.

Back to Blog

Related posts

Read more »