Design Log System Architecture

How Automated Design Candidates Are Generated

8 min read
Abstract view of automated topology generation producing multiple structural design candidates

One topology optimization cannot generate physics-valid structural candidates at volume by simply running in parallel. A single run reaches one local optimum, so ten thousand runs with identical inputs yield ten thousand copies of that result. Diverse candidates require sampling the space differently on every run while ensuring that each output meets the physics constraints. The engineering difficulty lies in combining diversity with constraint satisfaction.

This post outlines the core architecture of P1's generation pipeline: how it creates topologically diverse candidates instead of convergent clones, then validates them before physically inadmissible results enter the output set. Some mechanisms follow applied optimization theory. Others came from early tests in which visually varied results remained structurally correlated, making the set less useful than it appeared.

Constraint Space Geometry

The topology optimization design space is non-convex. Structural constraints, including yield criteria, stiffness requirements, and mass bounds, create a feasibility boundary across all possible density distributions in the design domain. That boundary contains high-curvature regions, internal cavities, and thin channels between disconnected feasible islands. Gradient-based optimization reaches a local minimum in the feasible region containing its starting point, while starts in different regions can produce structurally dissimilar results.

Non-convexity reflects the physical reality that one load case can support multiple valid topological families. A beam-and-truss topology, thin-walled shell topology, or lattice topology may satisfy identical structural constraints while differing in mass-stiffness tradeoffs and geometry. If initialization directs every run into one feasible region, the system samples only one family and underperforms on diversity, even when every output is valid.

P1 seeds every generation run from a different area of the initial density space, directing runs toward different topological families. We do not use random uniform sampling, which often clusters runs in the same attraction basins under strong high-gradient constraints. Instead, structured diversity initialization divides the design domain into characteristic sub-regions using principal stress trajectory analysis, then biases initial density distributions toward each region's dominant load path direction. The resulting population covers the family space more evenly and produces structurally distinct candidates rather than variations of one topology.

Constraints During Generation

Topology optimization algorithms generally treat constraints either as objective-function penalties or as hard constraints enforced at each iteration. Penalties are simpler computationally, but their weight is delicate. Too little weight permits constraint violations in pursuit of the objective; too much makes the optimizer conservative, yielding comfortable constraint margins at the expense of the structural optimum.

We enforce hard constraints in validation rather than relying on penalty terms during generation. Generation uses augmented Lagrangian methods for structural equality and inequality constraints, providing constraint satisfaction at each step without manual penalty-weight tuning. Lagrangian multipliers adapt to the history of violations, preventing drift into infeasible regions without artificially suppressing the objective gradient.

Yield constraints are treated separately. At every optimization iteration, Von Mises stress is calculated at each mesh point from the current density distribution and material stiffness. Stress above the yield threshold contributes a violation penalty to the augmented Lagrangian, directing the optimizer to add material or alter topology there. This local constraint is enforced voxel by voxel, rather than against one global summary value. Although slower per iteration, it resolves stress concentrations structurally instead of hiding them in poorly evaluated regions.

Diversity and Validity

Output diversity and guaranteed constraint satisfaction involve a real tradeoff. Broad diversity requires exploring areas far from local optima, where constraints may remain unsatisfied. Minimizing violations requires staying near the feasible boundary, which often reduces topological variation around local optima.

Early testing showed that the strongest approach was to separate diversity seeding from constraint satisfaction, with a handoff between them. Seeding creates initial density distributions across varied topological family regions without guarantees. Generation then starts from each seed and applies constrained optimization toward the nearest feasible optimum. Since the seeds occupy different topological basins, their convergent optima remain structurally distinct, although each run follows standard constrained topology optimization.

This gives us distinct candidates that each satisfy the physics constraints. The cost is generation time, since we run independent optimization sequences. Session wall time depends on candidate targets and available parallel compute, rather than design-domain complexity. In our use cases, sessions targeting 50 to 200 validated candidates typically finish in two to six hours of compute time on our current hardware, according to internal benchmarking.

The Validation Pass

Every candidate leaving constrained optimization enters an independent validation pass before joining the output set. Separating validation serves two purposes. Generation uses a relaxed convergence tolerance for efficiency, while validation applies a tighter tolerance to verify all constraints within engineering-use bounds. Validation also uses a different FEA mesh, with finer resolution, to check that stress concentrations found at coarse generation resolution are not mesh-discretization artifacts.

A failed candidate is removed from the output set with a reason code identifying the violated constraint and its mesh location. We retain this information in the session log because it diagnoses the feasible region boundary near that topological family. If similar candidates repeatedly fail the same constraint at the same location, the engineer may determine that the constraint is too tight for the family being explored and review whether it reflects the actual design requirement.

Early Errors We Made

During early internal prototyping, seeding used random initialization: each voxel received an independent density value drawn uniformly from a specified range. The starting configurations looked diverse but were structurally correlated. Random uniform initialization tends to produce similar aggregate properties, especially average density and aggregate stiffness, despite differing voxel values. Under identical loading, those properties steer optimization into the same topological basins.

Randomly initialized outputs appeared diverse but performed alike. A batch of 80 candidates might contain only three or four topological families, with many variations of one strut arrangement. Structured diversity initialization fixes this by biasing seeds toward distinct families using load path analysis, instead of expecting random volume variation to create family diversity.

Geometry alone did not reveal the problem. We found the correlation by comparing candidate structural metrics and observing tighter-than-expected clustering in mass-stiffness space. Metric clustering, not visual inspection, exposed the seeding failure. The broader lesson is that diversity belongs to metric space, so assessing it requires calculating performance values and examining their distribution rather than viewing topology images.

The Design Space Engineers Actually Receive

In practice, an engineer using P1 receives candidates spanning the physically achievable design space for specified constraints, not a cluster around one local optimum. This distribution affects downstream decisions. With only one topological family, the engineer cannot see alternative forms or their tradeoffs and must act as though one design philosophy is available, even when the physics supports several.

A genuinely diverse set makes family tradeoffs explicit. The engineer can compare a beam-dominant family with lower peak stress and higher mass, a lattice family with lower mass and higher junction stress concentrations, and a hybrid family between them on both dimensions. That comparison supports the design decision, but only if generation produces candidates from all three families.

P1 generates candidates across the topological family space, exposing tradeoffs beyond the nearest local optimum. Request Access