# Wave Overhangs Adapter ## Purpose This repository is treated as the wavefront toolpath-planning branch of the pressure / cavitation / vibration / diffusion catalog. The adapter couples three layers: ```text wavefront path planning -> heat-2D thermal residue simulation -> calibrated warp-risk envelope ``` Core role: ```text unsupported overhang region -> wavefront / level-set path planning -> FDM deposition path -> thermal residue field -> warping or stable overhang ``` This file is a technical integration contract, not a claim that the slicer alone solves polymer mechanics. --- ## 1. Native objects Let: | Symbol | Meaning | |---|---| | `Omega_o` | unsupported overhang region to fill | | `partial Omega_s` | supported / perimeter seed boundary | | `M(x,y)` | printable geometry mask | | `T(x,y)` | wavefront arrival / distance field | | `lambda` | line spacing / wavelength | | `Gamma_k` | kth generated wave track | | `x_nozzle(t)` | time-parametrized nozzle trajectory | | `u(x,y,t)` | thermal residue / cooling field | | `alpha(x,y)` | effective diffusivity field | | `f(x,y,t)` | deposition, reheat, and cooling source term | --- ## 2. Wavefront generation layer A wavefront arrival field can be approximated by an Eikonal equation: ```math |\nabla T(x,y)| = \frac{1}{c(x,y)} ``` where `c(x,y)` is a geometry-dependent propagation weight. Boundary condition: ```math T|_{\partial\Omega_s}=0 ``` Blocked/outside region: ```math (x,y)\notin\Omega_o \Rightarrow M(x,y)=0 ``` Wave tracks are level sets: ```math \Gamma_k = \{(x,y): T(x,y)=k\lambda\}\cap\Omega_o ``` A narrow-neck pruning gate should prevent fragile branches: ```math w_{neck}(x,y)T_g}\,dt ``` where `T_g` is the glass-transition / mobility threshold proxy. ### 6.3 Reheat activation proxy ```math R_{reheat}(x,y)=\max_t \mathbf{1}_{u(x,y,t)>T_g} ``` This estimates where earlier strands may re-enter a mobile polymer state. ### 6.4 Anchor distance penalty ```math A_{anchor}(x,y)=\exp\left(-\frac{d(x,y,\partial\Omega_s)}{\ell_a}\right) ``` where `ell_a` is an anchor coupling length. ### 6.5 Span-size proxy ```math C_{span}\propto L_{unsupported}^{2} ``` Large unsupported spans should be considered high-risk until calibrated print data says otherwise. ### 6.6 Curl-risk score ```math C_{curl}=w_1\max G_T+w_2\max R_{reheat}+w_3\max t_{hot}+w_4C_{span}-w_5\max A_{anchor} ``` Interpretation: ```text higher C_curl -> higher predicted warp/failure risk lower C_curl -> better candidate for unsupported wave overhang ``` --- ## 7. Calibration receipts Each print test should log: | Receipt | Required data | |---|---| | geometry receipt | STL/model name, overhang area, unsupported span, holes/concavity flags | | slicer receipt | line spacing, width, flow ratio, pattern, speed, fan, overlap, min width | | material receipt | polymer, filler, nozzle temp, bed temp, chamber temp, cooling duct | | simulation receipt | grid size, timestep, alpha field, source amplitude, boundary conditions | | outcome receipt | pass/fail, max curl, detachment, bead break, surface roughness, photo/hash | Minimum calibration target: ```math C_{curl}\uparrow \Rightarrow P(failure)\uparrow ``` Do not promote the score beyond `CALIBRATED_ENGINEERING_DELTA` until this monotonic relationship is measured over multiple geometries and materials. --- ## 8. Test cases ### Test A: single wave stripe Purpose: validate moving-source thermal trail. Expected behavior: - smooth trail behind nozzle, - peak temperature decays after source passes, - stronger fan coefficient shortens hot lifetime. ### Test B: adjacent wave lines Purpose: test line spacing / width / flow-ratio coupling. Expected behavior: - tighter spacing increases overlap, - higher flow ratio increases heat accumulation, - slower print speed increases dwell and bonding but may reheat earlier lines. ### Test C: monotonic vs zig-zag ordering Purpose: compare ordering policies. Expected behavior: - monotonic gives neighboring lines more cooling time, - zig-zag lowers travel but can increase local heat accumulation, - smart ordering should reduce unsupported-start risk. ### Test D: large unsupported span Purpose: detect when the wave strategy should fall back to support. Expected behavior: - larger spans increase curl-risk proxy, - two-sided cooling reduces vertical-gradient risk if modeled in a layered extension, - fiber-filled material proxy should use higher conductivity, lower expansion risk, and higher stiffness in downstream mechanical model. --- ## 9. Failure gates | Gate | Trigger | Action | |---|---|---| | thermal-gradient gate | `max G_T > theta_G` | slow print / raise fan / change path order | | hot-time gate | `max t_hot > theta_t` | increase line interval cooling time | | span gate | `L_unsupported > theta_L` | fall back to support / bridge / hybrid support | | anchor gate | `A_anchor < theta_A` at line start | use smart start or add perimeter overlap | | branch gate | `w_neck < w_min` | split/prune branch before propagation | --- ## 10. Scope warning This adapter does not claim wave overhangs are fully solved by heat diffusion. Pure heat diffusion does not model: - bead sag, - nozzle pressure deformation, - shape-memory polymer behavior, - viscoelastic stress relaxation, - crystallization, - full 3D strand mechanics. Correct role: ```text wavefront toolpath geometry -> thermal afterimage -> calibrated warping-risk proxy ``` Downstream mechanical models should consume this field instead of being hidden inside the diffusion solver. --- ## 11. Catalog placement This branch belongs beside: ```text pressure / cavitation / vibration / diffusion -> heat-2D residue model -> passive fluidic geometry -> rocket cooling geometry -> wavefront toolpath geometry ``` The shared abstraction is: ```text geometry + source + diffusion/propagation law -> residual field -> failure envelope ```