Skip to content
brorn
No. 030 · 3D objects

3D objects

Everyday objects designed in code (OpenSCAD and Blender) and printed. Each one starts from a measurement and a problem at home or on my desk.

Live

15 objects · all printed and tested

15 objects · all printed and tested
PhotoObjectWhat it isThe clever detailPrinted & tested
3D render of two desk stands on round bases, one for an iPad (blue) and one for a phone (orange)3D model
devices-stand2 desk stands (phone and iPad 10), base + cradle on a tower.Geometry shared in a library; cradle clearance tuned by testing (iPad snug at 7.1 mm).
YES · TESTEDTested and final
3D render of the mount seen from behind, with two phones on angled wings joined by a central hinge3D model
suporte-futebolMount for 2 phones on a selfie stick, to record games with 2 cameras.Wings at 31° calculated for the 1x lens, with ~9.5° of overlap; sleeve with a click lock.
YES · TESTEDIn use (recording rig)
dual-phone-mountFirst version of the dual mount, with independent pan and tilt.One phone hanging and the other standing, so they never collide at any angle.
YES · TESTEDLater replaced by suporte-futebol
3D render of the dark cable clip with a rounded channel where the charger cable snaps in3D model
cable-clip-evClip for an electric car charger cable.Deforms a downloaded mesh in code (not OpenSCAD) and adds locking teeth at the mouth.
YES · TESTED11 mm version with lock approved (Sep 2026)
3D render of the two curved, perforated adult shin guard shells3D model
caneleirasFootball shin guards in 2 sizes (child and adult).PETG shell printed already curved (it doesn't flatten back) + glued TPU lining; curve radii calculated.
YES · TESTED
3D render of the assembled oval organizer with tall compartments for a bag, bracelets and glasses cases, shown without the fluted texture3D model
desk-organizerOval fluted desk organizer, in 3 parts.Parts joined by printed butterfly keys; fluted texture generated in code.
YES · TESTEDKey test rounds (clearance tuned)
ipad-vesaVESA mount for an iPad on a rotating monitor arm.Holds the iPad in any orientation, with a flexible-tongue click lock.
YES · TESTED
3D render of the blue C-shaped clip that slides over the iPad camera3D model
ipad-camera-clipiPad camera-cover clip.C-shaped spring; 3 tightness versions (6.0/6.3/6.6 mm) engraved on the part.
YES · TESTED
3D render of the holder, a black conical base with a red C-ring held by two screws3D model
vac-bag-holderVacuum bag holder.C-ring that works as a spring, held by 2 printed screws.
YES · TESTED
3D render of three fit test pieces used to tune how the comb grips the trimmer3D model
pente-braunNew comb for a beard trimmer.Measured from photos on a sheet with ArUco markers (computer vision), 10 px = 1 mm.
YES · TESTED
3D render of the parts laid out for printing: arched arm, tray, half ring and locking pins3D model
punto-radio-mountTray + arm + swappable cradle (phone/iPad mini) for a car dashboard.Arched arm; rail with a tested lock adjustment; octagonal pins.
YES · TESTED
Raw 3D scan of the car's center console, with the radio, air vents and some loose scan fragments3D model
punto-standModel from a 3D scan of the car's console.So far, only the scan file (.glb).
YES · TESTED
3D render of the compact orange box with the offset slot on the lid3D model
sharps-boxCompact disposal box with lid and hinge.46% less volume than the downloaded model; opening offset so the entry angle is possible (17° to 37°).
YES · TESTED
3D render of the bracket, a back plate with screw holes and an open tray in front3D model
suporte-uU-shaped wall bracket for an electric car charger's control box.Side caps, a combined plate with clips, and G-code ready for the printer.
YES · TESTED
3D render of the V trestle cradle for the jug and, beside it, the small drilling template for the cap3D model
garrafao-torneiraAnti-roll cradle for a water jug lying on its side + a drilling template for the cap.V-shaped trestles and a slight slope for draining.
YES · TESTED

§How they're made

§1The problem

Ready-made objects from the internet rarely fit (wrong size, too big, doesn't snap in). I wanted to design parts to measure and turn that into a repeatable workflow, not manual trial and error in the slicer.

§2What I built

  • AI design workflowMy own instructions for an AI agent working in OpenSCAD: it acts as a product designer, proposes directions, renders, looks at the result, critiques and refines, and exports STL/3MF.
  • .3mf packerPer project: builds the file with the printer profile, filament per part (AMS colours) and A1 G-code embedded, and checks it by slicing from the command line.
  • ObjectsListed in the table above.

§3The hard parts

5 entries
  1. 01

    Files that open ready

    Bambu Studio ignores the embedded profile if the .3mf lacks a signature, and uses generic G-code (without pulling from the AMS) if it can't resolve the profiles' includes; I solved both and validate by slicing from the command line.

  2. 02

    Geometry that depends on testing

    Clearances (a snug iPad, the cradle latch, butterfly keys) are parameters; I print test families (e.g. 3 tightness levels) and the winner becomes a constant in the code.

  3. 03

    Calculation, not eyeballing

    Wing angle from the lens field of view; shin guard radius from the leg's circumference; the tilt window of the box's opening.

  4. 04

    Measuring without calipers

    Photos rectified with ArUco markers (OpenCV) to extract dimensions from a real device.

  5. 05

    Multi-material

    Parts in PETG/PLA/TPU with the right extruder per object on the AMS lite; TPU (soft) printed outside it and glued.

§4Result

objects designed, printed and tested
15

Every object in the table has been printed; several are in daily use (desk stands, the 2-phone rig, the cable clip).

§5Stack

  • OpenSCAD
  • Blender (headless)
  • Python (3MF generation, OpenCV / ArUco, lib3mf)
  • Bambu Studio (command-line slicer)
  • Bambu Lab A1 + AMS lite
  • PLA, PETG and TPU