Unexpected Results
The solver converged, but the design does not look right. This page covers the most common visual symptoms of incorrect or suboptimal results and how to fix them.
Checkerboard pattern
Appearance: The design result alternates between solid and void elements in a regular grid pattern, like a chessboard. There is no recognizable structure.
Cause: The filter radius is too small or disabled. Without smoothing, the solver can exploit single-element features that are numerically efficient but physically meaningless.
Fix:
- Increase the Filter Radius in Analysis Settings > Advanced. The default is 1.5 (1.5x element size). Try 2.0 or 2.5.
- Decrease the element size. A finer mesh with the same filter radius produces smoother results.
Disconnected islands
Appearance: The design contains isolated blobs of material that are not connected to the input, output, or fixed preserves. These floating islands do not carry load.
Causes:
- Volume fraction too low. The solver does not have enough material to form continuous paths, so it distributes material where it helps locally but cannot connect everything.
- Preserves too far apart. If the input and output are on opposite extremes of a large domain with a low volume fraction, the solver may not be able to bridge the gap.
- Incomplete pairing. An input or output preserve is not linked to a pair, so the solver does not know it needs to connect them.
Fix:
- Increase the volume fraction to 0.30--0.40.
- Move preserves closer together or increase the domain size to provide more routing space.
- Verify all preserves are linked through pairs.
All gray (no clear design)
Appearance: The entire material layout is a uniform gray. There are no distinct solid or void regions. Every element sits around 0.3--0.5.
Causes:
- Too few iterations. The solver has not had enough steps to resolve the design into clear solid and void regions.
- Penalization too low. A Penalization value of 1 produces almost no design sharpness, resulting in a blurry, undefined layout.
- Missing boundary conditions. Without proper fixation, the solver cannot differentiate load-bearing paths from non-load-bearing regions.
Fix:
- Increase iterations to 100--200.
- Set penalization to 3 (the default) or higher.
- Add or verify fixed preserves.
- Check that the convergence tolerance is not set too high (e.g., 0.1 would stop the solver too early).
Solid block with tiny holes
Appearance: The result is nearly all solid with a few small voids. It looks like the original domain with minor pocketing, not an optimized design.
Causes:
- Volume fraction too high. At 0.70 or above, the solver has so much material budget that it fills most of the domain. There is not enough incentive to create efficient load paths.
- Penalization too low. Without sufficient design sharpness, the solver spreads material evenly rather than concentrating it into clear solid and void regions.
Fix:
- Decrease volume fraction to 0.25--0.35.
- Ensure penalization is at least 3.
Design ignores the output
Appearance: The design forms load paths from the input to the fixed supports but does not connect to the output preserve. The output region is isolated or surrounded by void.
Causes:
- Missing pair. The output preserve exists but is not linked to the input through a pair.
- Wrong output direction. The output path direction is perpendicular to the natural load path, making it geometrically difficult for the solver to route material.
- K_p_max too high. In nuanced mode, an extremely high K_p_max can make the solver prioritize stiffness so aggressively that it ignores the output coupling.
Fix:
- Verify a pair exists linking input and output.
- Check the output path direction in the viewport -- the arrow should point in the direction you want motion.
- Try reducing K_p_max to 5--10.
Symmetric problem, asymmetric result
Appearance: Your preserve setup is perfectly symmetric, but the design is not. One side has a different structure than the other.
Cause: This is normal behavior. The solver can arrive at different valid solutions, and there is no guarantee of symmetry even with symmetric inputs. Small numerical differences during solving can break symmetry.
Fix:
- Enable Mirror Vertical and/or Mirror Horizontal in Analysis Settings > Advanced. This enforces symmetry in the design result.
- Accept the asymmetric result if it performs well. In many cases, the asymmetric solution is equally valid.
Design looks good but mechanism does not move correctly
Appearance: The material layout shows a clear, connected design, but the displacement animation shows the output moving in the wrong direction or not at all.
Causes:
- Mechanical advantage sign error. For inverters, the Mechanical Advantage (J*) should be negative (e.g., -1.0). A positive value designs a same-direction mechanism.
- Input/output direction mismatch. The input path pushes in one direction but the output path expects motion in a direction that is mechanically impossible given the preserve layout.
- Fixed preserve blocks the motion path. A fixed preserve is located between the input and output, preventing the mechanism from flexing through that region.
Fix:
- Check the sign of J* in Analysis Settings.
- Verify input and output path directions in the viewport.
- Ensure fixed preserves do not obstruct the intended motion path.
General diagnostic steps
When the result is unexpected:
- Check the convergence plot. If the solver did not converge, see Solver Not Converging.
- Verify all preserves. Toggle each preserve on/off in the viewport to confirm positions and dimensions.
- Check pairs. Open the Preserve Pairs section and verify each pair links the correct input to the correct output.
- Reset to defaults. Set volume fraction to 0.30, element size to 2.0 mm, penalization to 3, filter radius to 1.5, and run again. If the default result looks reasonable, the issue was a parameter value.
- Simplify. Remove extra preserves, pairs, or obstacles until you have the simplest possible problem. Get that working, then add complexity back one piece at a time.