Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
914785b
fix: read the outer boundary when a SAT face's first loop is a degene…
Krande Jul 18, 2026
d053927
test: equivalence guard for the B-spline plate-edge sampler
Krande Jul 18, 2026
9174ad2
perf: vectorise the B-spline plate-edge sampler (de Boor across all p…
Krande Jul 18, 2026
42be061
feat: stream FEM parity baseline from the mesh (bounded memory, no co…
Krande Jul 18, 2026
f8eebd9
feat: preserve assembly hierarchy in the streaming STEP writer
Krande Jul 18, 2026
0d525fa
feat: emit CSG primitive solids as lossless analytic B-rep in the str…
Krande Jul 18, 2026
274f6a3
chore: scrub client model names and private-repo references from comm…
Krande Jul 18, 2026
b5e6cc7
perf: vectorize the merge_strategy=None FEM plate stream (batch, not …
Krande Jul 18, 2026
3a3b87a
perf: reuse the STEP export stream as the FEM parity baseline count
Krande Jul 18, 2026
73cc3a5
fix: stop get_all_parts_in_assembly duplicating a non-root part
Krande Jul 18, 2026
505685e
feat: emit analytic curved_shell faces in FEM to Genie-XML export
Krande Jul 18, 2026
78ed763
feat: default FEM to Genie-XML export to the analytic strategy
Krande Jul 18, 2026
a112415
Merge remote-tracking branch 'origin/main' into fix/sat-degenerate-fi…
Krande Jul 18, 2026
eb4e184
style: black-format the new analytic gxml writers
Krande Jul 18, 2026
7410610
test: fix analytic-cylinder roundtrip threshold to the single-tube count
Krande Jul 18, 2026
a85ad54
fix: count faces + roots the NGEOM stream serializer silently dropped
Krande Jul 18, 2026
8265398
feat: geometry-invariant cross-format parity over produced files
Krande Jul 18, 2026
bdff4fd
refactor: fetch produced blobs for FEM parity instead of re-deriving
Krande Jul 18, 2026
cfd80c0
fix: convert STEP plane-angle units to radians in the streaming reader
Krande Jul 18, 2026
21d6da8
test: STEP plane-angle unit conversion in the streaming reader
Krande Jul 18, 2026
1f84fc1
style: black-format the plane-angle-units stream reader test
Krande Jul 18, 2026
e3ff820
style: sort imports in worker.py after the parity blob-fetch change
Krande Jul 18, 2026
77234ba
test: update parity isolation test for the produced-files _parity_child
Krande Jul 18, 2026
aeb8f87
fix: exclude standalone re-conversions from audit cell history
Krande Jul 18, 2026
7c2ec0e
feat: tap-to-view audit quality-flag details on mobile
Krande Jul 18, 2026
939db45
fix: tolerate whitespace in STEP LENGTH_UNIT pread scan
Krande Jul 18, 2026
1bf21ef
fix: guard material-less scenes in the GLB tree post-processor
Krande Jul 18, 2026
7545f1a
fix: skip empty concept formats in FEM parity instead of flagging them
Krande Jul 18, 2026
d2f3a7e
test: solid-only FEM parity skips empty concept formats
Krande Jul 18, 2026
ad8f2eb
fix: reference the parity area floor off the median, not the max conc…
Krande Jul 18, 2026
cba1e0d
fix: isolate CAD parity measurement so a native crash skips one format
Krande Jul 18, 2026
3f2bb76
chore: bump ada-cpp pin to 0.17.1
Krande Jul 19, 2026
1715473
chore: sync audit default image to the 0.17.1 wasm-base pin
Krande Jul 19, 2026
c9fc28d
perf: analytically clip curved plate edges instead of sampling a full…
Krande Jul 19, 2026
c87c89f
feat: analytic arc segments for curved plate boundaries via Plate.fro…
Krande Jul 19, 2026
fb59ddb
refactor: explicit ArcEdge/SplineEdge specs + B-spline sampler as a c…
Krande Jul 19, 2026
cb87f6b
feat: analytic B-spline plate boundary edges (SplineSegment) across a…
Krande Jul 19, 2026
e966733
feat: emit STEP B-spline plate faces analytically, not sampled facets
Krande Jul 19, 2026
5e4589d
feat: analytic B-spline curves in the streaming IFC writer + composit…
Krande Jul 19, 2026
f9b4d26
fix: keep the IFC B-spline composite curve schema-valid (bare, not tr…
Krande Jul 19, 2026
2c6dd49
feat: add official buildingSMART-aligned IFC validation (pixi task)
Krande Jul 19, 2026
bbbfa8e
fix: give beams exactly one IfcRelAssociatesMaterial (the profile-set…
Krande Jul 19, 2026
b55bf03
feat: emit spline-boundary plates as analytic IfcAdvancedBrep (render…
Krande Jul 19, 2026
c438046
fix: the two audit FEM-parity failure modes (meshopt glb measure + dr…
Krande Jul 19, 2026
ef2c765
chore: satisfy the black/isort CI lint gate
Krande Jul 19, 2026
a7b6cc0
feat: cross-job source-blob cache in the conversion worker
Krande Jul 19, 2026
7e7a069
chore: rebuild worker for the adacpp overlay branch switch
Krande Jul 19, 2026
b798fba
feat: thicken curved shells (OCC-free) with a global thickness-anchor…
Krande Jul 19, 2026
01d1cc5
feat: native NGEOM-record STEP/IFC export for Genie-XML conversions
Krande Jul 19, 2026
f3645d5
fix: gate the native xml->ifc leg behind an explicit opt-in (typed ro…
Krande Jul 19, 2026
bfc225d
feat: typed xml->ifc at native speed — C++ B-rep body fragments in th…
Krande Jul 19, 2026
0e2571a
perf: Genie-XML parity over produced files with cheap counters (no re…
Krande Jul 19, 2026
24ef4ad
fix: gxml count parity — IFC counts typed structural products only
Krande Jul 20, 2026
b3439bf
feat: native NGEOM-record GLB/OBJ/STL export for Genie-XML conversions
Krande Jul 20, 2026
1341a88
chore: bump ada-cpp pins to 0.18.0
Krande Jul 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion deploy/Dockerfile.viewer
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
# MUST stay >=0.9.0 — older bases ship an emscripten 3.1.58 wheel that micropip
# refuses against pyodide 0.29.4 ("Wheel was built with Emscripten v3.1.58 but
# Pyodide was built with v4.0.9").
ARG ADACPP_BASE_IMAGE=ghcr.io/krande/adacpp-wasm-base:0.16.1
ARG ADACPP_BASE_IMAGE=ghcr.io/krande/adacpp-wasm-base:0.18.0
FROM ${ADACPP_BASE_IMAGE} AS adacpp-wheel

# Stage 0b: build the pure-python adapy wheel for pyodide. The browser
Expand Down
4 changes: 4 additions & 0 deletions deploy/Dockerfile.worker
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
# meaningfully shrink things.
#
# Rebuild marker (bump to re-pull the ADACPP_BRANCH overlay fresh):
# 2026-07-19 — ADACPP_BRANCH switched to feat/step-emit-mapped-instances (AP242 assembly
# instancing + the closed-B-spline-edge / periodic-domain tessellation fixes that zero the
# dropped-face warnings on the NURBS-heavy corpus files). The previous value
# (fix/step-emit-degenerate-loop) is fully contained in the pinned 0.17.1.
# 2026-07-15 — overlay retired. Everything the previous markers were previewing (selectable
# tessellation tracks, boundary pinning ON by default, the watertight `cdt` track) shipped in
# ada-cpp 0.14.0, which pixi.toml now pins. The worker takes it from conda.
Expand Down
106 changes: 106 additions & 0 deletions files/sat_files/degenerate_first_loop.sat
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
400 0 1 0
14 ada-cpp-test 12 minimal-fixture 1 0
-1 9.9999999999999995e-07 1e-10
-75 vertex $146 -1 -1 $-1 $-1 $147 #
-147 point $-1 -1 -1 $-1 62.600000000000023 28.313333333333301 0.30000000000002874 #
-375 edge $531 -1 -1 $-1 $75 1 $75 0 $532 $-1 forward @7 unknown T 62.600000000000023 28.313333333333301 0.30000000000002874 62.600000000000023 28.313333333333301 0.30000000000002874 #
-532 coedge $-1 -1 -1 $-1 $532 $532 $-1 $375 forward $731 $-1 #
-731 loop $-1 -1 -1 $-1 $997 $532 $998 T 62.600000000000023 28.313333333333301 0.30000000000002874 62.600000000000023 28.313333333333301 0.30000000000002874 hole $999 F #
-997 loop $-1 -1 -1 $-1 $-1 $1372 $998 T 62.600000000000009 0 -0.25 62.600000000000009 29.600000000000001 1.375 periphery $999 F #
-998 face $1373 -1 -1 $-1 $1374 $731 $2 $-1 $999 forward double out T 62.600000000000009 0 -0.25 62.600000000000023 29.600000000000001 1.375 F #
-999 plane-surface $-1 -1 -1 $-1 62.600000000000023 14.800000000000008 0.56249999999999289 -1 -8.224661348075122e-31 4.5280583383210426e-16 8.5019249555939899e-31 -1 6.123233995736766e-17 forward_v I I I I #
-1372 coedge $-1 -1 -1 $-1 $1871 $1872 $1873 $1874 forward $997 $-1 #
-1871 coedge $-1 -1 -1 $-1 $2547 $1372 $2548 $2549 reversed $997 $-1 #
-1872 coedge $-1 -1 -1 $-1 $1372 $2547 $2550 $2551 forward $997 $-1 #
-1874 edge $2556 -1 -1 $-1 $2557 0 $2558 1.625 $1372 $2559 forward @7 unknown T 62.600000000000009 0 -0.25 62.600000000000009 0 1.375 #
-2547 coedge $-1 -1 -1 $-1 $1872 $1871 $3434 $3461 reversed $997 $-1 #
-2549 edge $3464 -1 -1 $-1 $3446 0 $2558 29.600000000000001 $1871 $3465 forward @7 unknown T 62.600000000000009 0 1.375 62.600000000000009 29.600000000000001 1.375 #
-2551 edge $3467 -1 -1 $-1 $3468 0 $2557 29.600000000000001 $2550 $3469 forward @7 unknown T 62.600000000000009 0 -0.25 62.600000000000009 29.600000000000001 -0.25 #
-2557 vertex $3482 -1 -1 $-1 $3475 $3483 #
-2558 vertex $3484 -1 -1 $-1 $1874 $3485 #
-2559 intcurve-curve $-1 -1 -1 $-1 forward { exactcur full nubs 3 open 2
0 3 1.625 3
62.600000000000009 0 -0.25
62.600000000000009 0 0.2916666666666714
62.600000000000009 0 0.8333333333333357
62.600000000000009 0 1.375
0
null_surface
null_surface
nullbs
nullbs
-1
-1
I I
0
0
0

-1
none F F 1 F 0 } I I #
-3446 vertex $4557 -1 -1 $-1 $3461 $4558 #
-3461 edge $4576 -1 -1 $-1 $3468 0 $3446 1 $3434 $4577 forward @7 unknown T 62.600000000000009 29.600000000000001 -0.25 62.600000000000009 29.600000000000001 1.375 #
-3465 intcurve-curve $-1 -1 -1 $-1 forward { exactcur full nubs 3 open 2
0 3 29.600000000000001 3
62.600000000000009 29.600000000000001 1.375
62.600000000000009 19.733333333333338 1.375
62.600000000000009 9.8666666666666671 1.375
62.600000000000009 0 1.375
0
null_surface
null_surface
nullbs
nullbs
-1
-1
I I
0
0
0

-1
none F F 1 F 0 } I I #
-3468 vertex $4581 -1 -1 $-1 $4580 $4582 #
-3469 intcurve-curve $-1 -1 -1 $-1 forward { exactcur full nubs 3 open 2
0 3 29.600000000000001 3
62.600000000000009 29.600000000000001 -0.25
62.600000000000009 19.733333333333338 -0.25
62.600000000000009 9.8666666666666671 -0.25
62.600000000000009 0 -0.25
0
null_surface
null_surface
nullbs
nullbs
-1
-1
I I
0
0
0

-1
none F F 1 F 0 } I I #
-3483 point $-1 -1 -1 $-1 62.600000000000009 0 -0.25 #
-3485 point $-1 -1 -1 $-1 62.600000000000009 0 1.375 #
-4558 point $-1 -1 -1 $-1 62.600000000000009 29.600000000000001 1.375 #
-4577 intcurve-curve $-1 -1 -1 $-1 forward { exactcur full nubs 1 open 2
0 1 1 1
62.600000000000009 29.600000000000001 -0.25
62.600000000000009 29.600000000000001 1.375
0
null_surface
null_surface
nullbs
nullbs
-1
-1
I I
0
0
0

-1
none F F 1 F 0 } I I #
-4582 point $-1 -1 -1 $-1 62.600000000000009 29.600000000000001 -0.25 #
End-of-ACIS-data
Loading
Loading