Skip to content

ANUcybernetics/perceptron-apparatus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Perceptron Apparatus

Elixir lib for configuring and generating an (svg) design file for a perceptron apparatus---suitable for CNC routing/laser cutting.

See project page for description.

Installation

This package is not (currently) on hex. You can clone the repo and import it via a :path.

You'll also need to download and install the Relief SingleLine font.

Nomenclature

A board contains a number of rings, each of which represents a layer in the (MLP) neural network.

SVG classes represent different cut types:

top plate (will all have top class)

  • full full-depth cuts
  • slider full-depth routed channels for sliders
  • etch light v-cut etches
  • etch.heavy heavier v-cut etches
  • hole full-depth holes (for screws)

bottom plate (will all have bottom class)

  • slider partial-depth routed channels (for captive slider/ring bottoms)
  • hole full-depth holes (for screws)

TODO

  • add Utils.write_files which writes out all the necessary svgs (baseboard + topboard, plus individual files for each cut type)

  • design a 400x400 prototype (same radius, inc markings, arc + couple of sliders)

  • check no quirks in the final svg output which will trip up the CNC machine (e.g. empty text nodes)

  • replace the "interp and concat strings" approach with proper HEEX templates

  • add drill holes, etc

  • add Axon support

    • see what the param ranges are (inc. negative?)
    • training model based on inputs
    • auto-generating the SVG based on the model (i.e. %Axon{} -> %PerceptronApparatus{})
    • examples (5x5 MNIST digits, maybe something with language?)

    questions for Sam

    • "relief" cuts, or other visual emphasis tricks
    • class-based approach for different cut types?
    • baseboard cuts (and captive slider designs)
    • can Cole & I come help?
    • prototype next steps
    • handles & other holes
    • any other design optimisations?

Author

(c) 2024 Ben Swift

Licence

MIT