opencad
← Machines
MachinePASS 9/9

Sprite

Printable tail-sitter FPV drone. A sled on the carbon frame carries the Aleph compute stack and the battery; the shell and nose cover slide on over it.

Facts

Backend
build123d
Gates
9 pass, 0 fail, 5 n/a
Envelope
188.0 × 188.0 × 356.7 mm
Bodies
31 (17 modelled, 14 purchased)
Joints
30

Printable part designs

PartGatesFiles
main-frame
sprite-aleph-v2-main-frame
PASS 12/12STEP · STL
rear-mount
sprite-aleph-v2-rear-mount
PASS 11/11STEP · STL
rear-shell
sprite-aleph-v2-rear-shell
PASS 11/11STEP · STL
launch-pad
sprite-aleph-v2-launch-pad
PASS 11/11STEP · STL
esc-envelope
sprite-aleph-v2-esc-envelope
PASS 11/11STEP · STL
motor-cover
sprite-aleph-v2-motor-cover
PASS 12/12STEP · STL
cam-mount-l
sprite-aleph-v2-cam-mount-l
PASS 12/12STEP · STL
cam-mount-r
sprite-aleph-v2-cam-mount-r
PASS 12/12STEP · STL
rear-cover-mount
sprite-aleph-v2-rear-cover-mount
PASS 12/12STEP · STL
sled
sprite-aleph-v2-sled
PASS 11/11STEP · STL
main-shell
sprite-aleph-v2-main-shell
PASS 11/11STEP · STL
top-cover
sprite-aleph-v2-top-cover
PASS 11/11STEP · STL
servo-mount
sprite-aleph-v2-servo-mount
PASS 11/11STEP · STL
vtx-mount
sprite-aleph-v2-vtx-mount
PASS 11/11STEP · STL

Assembled machine

FileKindSize
sprite-aleph-v2.stepSTEP81.1 MB
sprite-aleph-v2.stlSTL15.8 MB

Source

assembly.yaml (design contract)

Design intent

A printed sled bolts to the carbon X frame and carries the Aleph compute stack on edge plus a 6S pack in a tray forward of it. An open-bottom shell slides down over the loaded sled, and the nose cover slides on from the front. Five-inch props; PETG or ASA for the sled, shell and cover, each printed part sized for a Bambu X1C.

Gates

TierGateResultEvidence
Aparts_pass
Every part design passed its own 12 gates and has a handoff STEP
PASSresults/build123d/sprite-aleph-v2/parts.json designs.<design>.gates_ok: sprite-aleph-v2-main-frame=True, sprite-aleph-v2-rear-mount=True, sprite-aleph-v2-rear-shell=True, sprite-aleph-v2-launch-pad=True, sprite-aleph-v2-esc-envelope=True, sprite-aleph-v2-motor…
Abom_complete
Every body of the bill of materials is in the export, once, with a placement
PASSresults/build123d/sprite-aleph-v2/verify.json solid_count = 31 (expected 31); placements.missing = []; unmatched = []
Ajoint_fidelity
Every joint's child frame lies on its parent frame (axis, offset, rest angle)
PASSresults/build123d/sprite-aleph-v2/verify.json joints.joints.<joint>.checks; failing: none
Aclearances
Static clearances and seats at rest
PASSresults/build123d/sprite-aleph-v2/verify.json clearances.<name>; failing: none
Amotion_clear
Every drive moves through its range without interference; gears mesh; ratios match tooth counts
PASSresults/build123d/sprite-aleph-v2/kinematics.json motions.<name>.max_interference: camSweep=0.07693
Afluid_domain
Each fluid region is one sealed piece within its volume band and agrees with the source's fluid body
n/aresults/build123d/sprite-aleph-v2/domains.json fluids.<name>:
Bexport_agreement
Each exported body equals its part handoff x placement; the assembled envelope matches
PASSresults/build123d/sprite-aleph-v2/verify.json agreement.bodies.<body>.volume_rel/hausdorff_mm; envelope.max_error = 1.5663817976019345e-07 (tol 0.5)
Bperformance
Every predicted observable meets the requirement the sources state over its numerical band (value +- 2 u_numerical)
n/aresults/build123d/sprite-aleph-v2/simulate.json observables.<id>.requirement: camTiltRange=-
Bconservation
Energy, mass and force balances of every analysis close within their tolerance
n/aresults/build123d/sprite-aleph-v2/simulate.json simulations.<id>.conservation:
Brefinement
Every prediction of a mesh ladder is resolved: all its levels finished and the grid-convergence index is within tolerance
n/aresults/build123d/sprite-aleph-v2/simulate.json simulations.<id>.refinement.observables:
Csource_hygiene
The assembly source imports only its declared inputs, formats and lints clean
PASSresults/build123d/sprite-aleph-v2/verify.json hygiene: cad_refs=[] truth_refs=[]; ruff format True, ruff check True
Cboundaries_complete
Every face of a bounded body carries exactly one named boundary
n/aresults/build123d/sprite-aleph-v2/domains.json boundaries.<body>.unassigned/conflicts: none
Cprovenance
Stage JSONs carry provenance stamps; part handoffs are hash-bound; inputs carry provenance
PASSresults/build123d/sprite-aleph-v2/<stage>.json provenance present for ['verify', 'kinematics', 'domains', 'simulate']; parts.json designs.<d>.step_sha256 present: True
Cevidence_separation
No worker-visible artefact reads truth; the assembly source only places declared inputs
PASSresults/build123d/sprite-aleph-v2/verify.json hygiene.truth_refs = []

Bill of materials

BodyKindDesignMaterial
mainFramemodelledsprite-aleph-v2-main-framecarbon fibre plate
rearMountmodelledsprite-aleph-v2-rear-mountPLA
rearShellmodelledsprite-aleph-v2-rear-shellPLA
launchPadmodelledsprite-aleph-v2-launch-padPLA
ark4in1Escmodelledsprite-aleph-v2-esc-envelopePLA
motorCover1modelledsprite-aleph-v2-motor-coverPLA
motorCover2modelledsprite-aleph-v2-motor-coverPLA
motorCover3modelledsprite-aleph-v2-motor-coverPLA
motorCover4modelledsprite-aleph-v2-motor-coverPLA
camMountLmodelledsprite-aleph-v2-cam-mount-lPLA
camMountRmodelledsprite-aleph-v2-cam-mount-rPLA
rearCoverMountmodelledsprite-aleph-v2-rear-cover-mountPLA
mountingSledmodelledsprite-aleph-v2-sledPETG or ASA
mainShellmodelledsprite-aleph-v2-main-shellPETG or ASA
topCovermodelledsprite-aleph-v2-top-coverPETG or ASA
servoMountmodelledsprite-aleph-v2-servo-mountPLA
vtxMountmodelledsprite-aleph-v2-vtx-mountPLA
alephBasepurchased
alephCarrierpurchased
alephModulepurchased
alephHeatsinkpurchased
alephStandoff1purchased
alephStandoff2purchased
alephStandoff3purchased
alephStandoff4purchased
shellScrew1purchased
shellScrew2purchased
shellScrew3purchased
shellScrew4purchased
batterypurchased
regulatorpurchased