The Arcology Garden



Open source pen plotter. You feed it SVG or movement code and it draws. I am trying to drive it with Paper.js right now, but it can be programmed using a few other tools as well. There is an Inkscape extension which can drive it, but Fedora Linux ships Inkscape 1.0 beta, and the extension doens't work with that yet. In theory I could have used Flatpak to install 0.92, but I had issues getting the right libraries installed in to it without a full Flatpak build environment.

The Axidraw doesn't support the full set of features in SVG, I don't know exactly what they support right now. I feel like I'm starting to hit the edges of what I can do with Paper.js, frankly, so I might play with Weir instead. I want to do more organized compositions along with generative art, so we'll see what the correct set of tools ends up looking like.

There are some other tools to evaluate in generating SVGs which can print:

Installing the Inkscape plugin in Nix home-manager

I would really love not having to specify the files to copy here lmao. This does not install support for eggbot or watercolorbot, sorry. Also this is going to conflict with other home.file-needers. This whole "have a org-roam keyword for each home-manager stanza" isn't really going to work… :/

{pkgs, ...}:

  zipDir = "ad-ink_322_r0-ink12";
  inkscapeAxidraw = pkgs.stdenv.mkDerivation {
    name = "inkscape-axidraw-plugin";
    src = builtins.fetchurl {
      url = "${zipDir}.zip";
      sha256 = "0wpg5k10k04110xqnq2zs3vcbdd15n4k0qzkvgr6l48di3vfl0qy";
    buildInputs = [pkgs.unzip];
    unpackPhase = ''
    ${pkgs.unzip}/bin/unzip $src
  patchPhase = ''
      substituteInPlace ad-ink_322_r0-ink12/axidraw_hatch.inx \
             --replace '<param name="aboutpage_7" type="description"  indent="2">' \
                       '<_param name="aboutpage_7" type="description"  indent="2">'

  installPhase = ''
    mkdir -p $out
    cp -r ${zipDir}/* $out/
  home.packages = [

  home.file.".config/inkscape/extensions/axidraw_deps".source = "${inkscapeAxidraw}/axidraw_deps";
  home.file.".config/inkscape/extensions/axidraw_deps".recursive = true;
  home.file.".config/inkscape/extensions/svg_fonts".source = "${inkscapeAxidraw}/svg_fonts";
  home.file.".config/inkscape/extensions/svg_fonts".recursive = true;
  home.file.".config/inkscape/extensions/axidraw.inx".source = "${inkscapeAxidraw}/axidraw.inx";
  home.file.".config/inkscape/extensions/".source = "${inkscapeAxidraw}/";
  home.file.".config/inkscape/extensions/".source = "${inkscapeAxidraw}/";
  home.file.".config/inkscape/extensions/axidraw_disableMotors.inx".source = "${inkscapeAxidraw}/axidraw_disableMotors.inx";
  home.file.".config/inkscape/extensions/axidraw_hatch.inx".source = "${inkscapeAxidraw}/axidraw_hatch.inx";
  home.file.".config/inkscape/extensions/axidraw_naming.inx".source = "${inkscapeAxidraw}/axidraw_naming.inx";
  home.file.".config/inkscape/extensions/".source = "${inkscapeAxidraw}/";
  home.file.".config/inkscape/extensions/axidraw_svg_reorder.inx".source = "${inkscapeAxidraw}/axidraw_svg_reorder.inx";
  home.file.".config/inkscape/extensions/".source = "${inkscapeAxidraw}/";
  home.file.".config/inkscape/extensions/hershey_axi_ink1.inx".source = "${inkscapeAxidraw}/hershey_axi_ink1.inx";
  home.file.".config/inkscape/extensions/".source = "${inkscapeAxidraw}/";
  home.file.".config/inkscape/extensions/".source = "${inkscapeAxidraw}/";

NEXT Learn some Generative Art creative coding tools

NEXT do another blender 3d AxiDraw experiment