  In 3D printing, stiff fibers (e.g., carbon fiber) can reinforce thermoplastic
polymers with limited stiffness. However, existing commercial digital
manufacturing software only provides a few simple fiber layout algorithms,
which solely use the geometry of the shape. In this work, we build an automated
fiber path planning algorithm that maximizes the stiffness of a 3D print given
specified external loads. We formalize this as an optimization problem: an
objective function is designed to measure the stiffness of the object while
regularizing certain properties of fiber paths (e.g., smoothness). To
initialize each fiber path, we use finite element analysis to calculate the
stress field on the object and greedily "walk" in the direction of the stress
field. We then apply a gradient-based optimization algorithm that uses the
adjoint method to calculate the gradient of stiffness with respect to fiber
layout. We compare our approach, in both simulation and real-world experiments,
to three baselines: (1) concentric fiber rings generated by Eiger, a leading
digital manufacturing software package developed by Markforged, (2) greedy
extraction on the simulated stress field (i.e., our method without
optimization), and (3) the greedy algorithm on a fiber orientation field
calculated by smoothing the simulated stress fields. The results show that
objects with fiber paths generated by our algorithm achieve greater stiffness
while using less fiber than the baselines--our algorithm improves the Pareto
frontier of object stiffness as a function of fiber usage. Ablation studies
show that the smoothing regularizer is needed for feasible fiber paths and
stability of optimization, and multi-resolution optimization helps reduce the
running time compared to single-resolution optimization.
