- OpenSCAD 100%
| .gitignore | ||
| AGENTS.md | ||
| README.md | ||
| wings.scad | ||
| wings2.scad | ||
| wings3.scad | ||
Wings
OpenSCAD experiments for a small 3D-printable folding bird wing. The intended use is a wearable headpiece, so the design prioritizes light weight, compact folding, and simple actuation.
The current goal is a wing-like tucking/folding motion, not a flapping motion.
Current File
The main working design file is:
wings2.scad
Units are millimeters.
wings.scad is now a reference file that preserves earlier explorations:
clevis-style wire-pin joint
animated kinematic layout
original rounded linkage pin/socket test
Current Prototype
wings2.scad is the current focused joint implementation. It uses a lapped
pin/socket joint instead of a clevis:
- Blue part: pin-side segment with a lower thin tongue, snap pin, and raised open stop.
- Orange part: socket-side segment with an upper thin tongue and matching socket.
- The two parts are rendered separated for printing, not interlocked.
- The joint stack is 3mm thick, split into a 1mm pin-side layer and 2mm socket-side layer.
The intent is to keep both segments in the same motion plane while using a printable snap pin/socket connection.
Important Parameters
Core segment dimensions:
joint_length = 30;
joint_width = 5;
joint_thickness = 3.0;
pin_side_thickness = 1.0;
socket_side_thickness = joint_thickness - pin_side_thickness;
tongue_length = 10;
socket_angle = 130;
print_spacing = 12;
Snap pin/socket tuning:
pin_stem_radius = 1.40;
pin_lip_radius = 1.60;
socket_stem_clearance = socket_clearance;
socket_lip_clearance = 0.10;
pin_total_height = socket_side_thickness - socket_clearance;
The stem clearance is intentionally looser than the lip clearance. That keeps rotation clearance reasonable after snapping, while making the snap feel more positive.
Open stop tuning:
open_stop_angle = 150;
open_stop_extension_length = 10.5;
open_stop_length = 4.0;
open_stop_width = 1.5;
open_stop_clearance = 0.10;
The current idea is:
minimum folded angle: controlled mostly by tongue length and body collision
maximum open angle: controlled by the raised open stop
Printing Layout
The current scene renders both pieces separated:
- The pin-side segment is printed in its normal orientation.
- The socket-side segment is moved down by
print_spacing. - The socket-side segment is flipped so its broad face sits on the bed.
This avoids exporting the parts in their assembled/interlocked state.
Design Direction
The current preferred mechanism is:
printed wing segments
lapped pin/socket joints
tendon actuation
geometry-defined hard stops
optional helper linkages if needed
The pin/socket joint is being revisited because it prints simply and can keep the segments in-plane when the joint stack is split into upper and lower tongue layers.
The stop strategy is currently simple and external:
one segment extends its thin tongue past the pivot
that extension carries a raised stop block
the neighboring raised body hits the stop near the open limit
the folded limit is tuned with tongue/body length and overlap
OpenSCAD Conventions
This project intentionally uses a readable, learning-friendly OpenSCAD style.
Write code top-down:
- Parameters
- Scene switches
- Scene composition
- Assemblies
- Sketch drawing modules, if present
- Reusable shapes
- Helper functions
Always use braces for module children.
Prefer this:
linear_extrude(height = thickness) {
hull() {
translate([end_radius, 0]) {
circle(r = end_radius);
}
translate([length - end_radius, 0]) {
circle(r = end_radius);
}
}
}
Avoid this:
linear_extrude(height = thickness)
hull() {
translate([end_radius, 0])
circle(r = end_radius);
}
Rendering
From this directory, render the current scene with:
openscad -o /tmp/opencode/wings2-test.stl wings2.scad
For animation-related changes in wings.scad, render a midpoint with:
openscad -D '$t=0.5' -o /tmp/opencode/wings-test-mid.stl wings.scad
A successful render should include:
Top level object is a 3D object:
Simple: yes
Notes
This is still an early mechanical exploration. The current model is not yet a final printable wing. The most useful next steps are likely:
- Test the
wings2.scadsnap fit and open stop on real prints. - Tune
tongue_lengthfor folded angle andopen_stop_anglefor open angle. - Refine stop block size and clearance after physical testing.
- Apply the best joint design to the full folding wing layout.