Development Roadmap



  • First full CAD implementation
    • port all parts to NopSCADlib, upstream
      • Mod 1 rack profile
      • rack T slot profile
      • pneumatic distribution block
      • endstop brackets
      • linear axis motor, bearing, bearing brackets
      • feet
      • clamp pads
      • backstop spacers
      • sharp angle brackets
      • openbuilds plates
      • nema-14/17/23/34 motor mount
      • nut block
      • triangular brackets
  • First full physical implementation
  • Automated frame factory prototype
  • Reduction of vitamins components
  • Community bazaar
  • VR pathfinder
    • part choice, translation, rotation, enumeration
    • implement verbs
    • app store applications
    • grid
    • pickling, i/o - ser
    • animation - tweening
    • physics
    • environment models, sounds
    • controller models
    • CSG
    • text edit control
  • EDA tooling
    • netlist
    • component libraries
      • package model (3D), pad shape (2D, multiple layers - including vias), wiring pinout (list), art (2D)
  • Debian package


New contributors

This list of items is curated especially for new contributors to the project, to provide introductory projects with which to familiarize themselves with the project infrastructure, function, and development process.

  • Install the replimat software and clone the replimat git repo
  • Expand ferrule.scad to produce all ferrules in the accompanying datasheet


  • Become familiar with the production toolchain
  • Load production code and operate production equipment
  • Attend group work and regular company meetings
  • Outreach prep

Video production

  • workstation bringup
  • web dev bringup
  • video production bringup
  • creating / updating a project


  • production montage
    • cnc router
    • chop saw
    • packing
  • use montage
    • building a project
    • driving a cargo cycle
    • disassembly and packing away
  • philosophy / voice over
  • closing statement
  • introduction
  • pitch
  • motion graphics and overlays

Director / Interviewer

  • lead ins
  • points of interest

Experienced contributors

  • finish converting CNC router to grbl/Candle
  • python script to convert FreeCAD file to STEP / STL
  • port CAD library to nopscadlib
    • implement .glb file export for OpenSCAD
    • implement 40mm standard
    • model perforated T slot aluminum
    • automatic nut/bolt height adjustment when mounting plates
    • add scale to renders
    • parts should be indexed at first mounting hole, at origin
    • model HGH20CA linear bearing as nopscadlib part
    • model / find model for bicycle crank, arms, pedals
    • nopscadlib translation and rotation functions - translate_x, translate_y, translate_z?
    • nopscadlib lumber library
    • implement cord library - point-to-point, curves, wires, hoses - based on NopSCADlib belt(); or sweep();
    • implement fabrics library - curved flats for seats, etc
    • implement linear axes in nopscadlib
    • NESE module
    • charge controller
    • inverter / motor controller
    • power cube assembly
    • solar panel - standard sizes
    • hydraulic parts - acquired from OSE, need to be imported fully
    • motor - existing file
  • VR CAD
    • part STL model loading
    • part model positioning
    • part model physics
    • hand modeling and basic controls
    • snap part models to grid
    • enumerate loaded parts, parameters, and write out to file
    • load file, placing and parameterizing parts
    • load assembly of parts, snap to grid, and avoid loading any part which clobbers an existing one.


  • contact Ashton about 40mm square tube
  • reverse DNS
  • wiki script to walk the database and read every current page contents
    • backup every video
  • wiki script to submit an edit
  • wiki plugin hooking edits for processing



  • realtime Ethernet (UDP and maybe PTP) on microcontrollers
  • implementing a DDS/DDA (numerically controlled oscillator essentially) on a microcontroller with high performance
  • implementing a realtime Ethernet system on an FPGA, ideally without relying on a soft processor to handle packets

I do have a lot of ideas about using soft processors on FPGAs too, but I don't want it to be a complete crutch nor threaten the main realtime datapath

  • there are a lot of PCBs that need to be designed, most of which are relatively simple or even trivial
  • a lot of FPGA cores use the WishBone bus, but a lot of them also use the AXI bus (derived from ARM). I am not familiar with either one, but it seems like the AXI bus is a bit more complicated and easier to crash if you use it improperly


  • I really really want to write EDA software, but it can't be our first project unless it somehow will directly generate revenue
  • learn more about OpenGL to where we can write an efficient CNC toolpath previewer
  • implement a non-linear constraint solver for parametric 2D CAD
  • create a GUI to display/edit parametric constraints/dimensions similar to Fusion 360, SolidWorks, FreeCAD, SolveSpace, etc.
  • implement a traveling salesman algorithm for toolpath generation (Tim's used space curves before to approximate it)
  • implement a trajectory planner that does acceleration and maybe jerk limiting. We don't necessarily need to limit ourselves to outputting lines and arcs only, because we are in control of the hardware, not to mention you can always approximate as arcs (or lines) at the final step of post-processing
  • write a replacement for dxflib for importing DXFs, and use that replacement library to implement a reusable DXF geometry importer (better than the current ones out there...)