Category Archives: Software

Hidden line removal for AxiDraw

AxiDraw Control v3.9 screenshot, showing hidden-line removal feature

We’re pleased to note the release of AxiDraw software version 3.9 this week, with a couple of neat new features. One of them is that the “preview mode” button — which lets you simulate plotting to see how the results will come out — is now accessible no matter which function is selected. The other, the big one, is that AxiDraw now supports hidden-line removal as a standard feature.

There’s a full changelog up on GitHub, which also notes a few new features for users of the AxiDraw CLI (command-line interface) and AxiDraw Python library, including the ability to resume a plot a little before where it was paused.

But, let’s talk more about hidden-line removal.
Continue reading Hidden line removal for AxiDraw

Featured artist: Michael Fogleman

Drawing of lots of small coils titled Spiral Galaxies

Michael Fogleman is an active member of the plotter art community. His twitter feed often contains either new art, or links to new tools that he has made.

He has created and shared some incredible resources, including a wide variety of vector art tools and even an alternate Python library for AxiDraw.

Drawing of a protein diagram displayed at the Plotter People Meetup

I am a fan of science as an art subject, and Michael’s protein ribbon diagram drawings are a great example. A ribbon diagram depicts the 3D structure of the protein as well as the common secondary structures of helixes, strands, and coils.

In addition to making the drawings, he has a twitter bot that publishes ribbon diagrams and has published the code for the project. This ribbon diagram was one that we got to see at the Plotter People meetup in San Francisco.

Drawing of Galaga

Michael hits another of my weaknesses, vintage gaming with his NES Sparklines drawings.

For these drawings, I use an NES emulator (of my own creation) to record a snapshot of the Nintendo’s RAM at each frame (60 fps). The NES only had 2048 bytes of RAM. For each address in memory, I plot its values over time as an individual sparkline. I only show addresses that changed at least once, so there are usually fewer than 2048 sparklines. Because each game developer used the memory in different ways, each game produces its own unique look when plotted.

MOS 6502 processor drawing

He also plotted something dear to our hearts (and close to the heart of the NES), the MOS 6502 processor.

Topographic map of Mount St. Helens

One subject that I’ve often thought appropriate for plotting are maps, and Michael’s topographic maps are elegant. Again, in addition to making drawings, he has provided his code for working with AWS terrain data as well.

Drawings of the Stanford bunny

Michael sells drawings, and accepts commissions for favorite NES games, proteins, map regions, and even cellular automata. He has projects on wide ranging subjects, not limited to pen plotters, so go check them out!

New EggBot Software Version

We are pleased to announce a major revision for the EggBot software with several significant improvements. It is now updated to support Inkscape 0.92. We have also streamlined the EggBot menu within Inkscape and updated the example set.

We have a new SVG reordering utility, written from scratch. In addition we have improved the Hatch Fill extension, which can now provide neat connections between the endpoints of the hatching, for fast, efficient filling.

We also have a brand new version of Hershey Text, which converts full blocks of text rather than just single lines.

The EggBot documentation has been improved and updated to reflect these changes.

Stroke fonts from Quantum Enterprises

One of the features in our new Hershey Text v 3.0 software is the ability to extend it with new fonts.

One company, Quantum Enterprises, is already selling high quality stroke fonts that are compatible with the new Hershey Text, and ideal for use with the AxiDraw.

Their fonts are available in matched pairs: A TrueType (outline) font and a single-stroke SVG stroke font. The TrueType font works as a regular computer font, which you can use to lay out and edit text on your page. Hershey Text then performs automatic font substitution replacing the text in place with the matching stroke font.

Here is a sample of what one of their regular (TrueType) handwriting-like fonts looks like, as laid out on the page within Inkscape:

And, here is how that same text looks once rendered with Hershey Text into its single-stroke SVG font version:

The single-stroke text comprises a set of paths ideally suited to be traced with a pen. And finally, here is how that stroke text looks as plotted with the AxiDraw:

These new stroke font pairs, as well as custom fonts, are available to purchase directly from Quantum Enterprises.

An especially neat feature of these fonts is that they can work with the Quantum Enterprises Scriptalizer character substitution software — now available directly integrated within a special version the AxiDraw software. This software performs automatic substitution between different letter forms (glyphs) for the same character, making plotted text look more like handwriting.

The AxiDraw CLI and Python API

Following the release of our new AxiDraw software this week, we are pleased to announce the release of two additional software components that greatly extend the capability of the machine.

The AxiDraw software is now available in two alternate versions that may be helpful for developers or for anyone who would like to control the machine programmatically rather than through Inkscape: A stand-alone command-line interface (CLI) tool, as well as a full-featured Python library.

The AxiDraw CLI

The first new tool is the AxiDraw CLI,  a command-line API to drive the AxiDraw outside of Inkscape. Like the Inkscape-based software, its primary function is to plot SVG files. However, it is a stand-alone utility that can be driven from within shell scripts and other environments that make use of shell commands.

Once installed, plotting a file can be as simple as executing the following command:

axicli filename.svg

There are, of course, a breadth of different modes and configuration parameters available. We have written detailed descriptions of each of these options in our comprehensive API documentation. The CLI also supports the use of configuration files to quickly switch between different sets of parameters.

Since most common scripting and programming environments allow one to call shell commands like this, that allows the AxiDraw to be used directly within a wide variety of frameworks.


The Python API

The second new tool is the AxiDraw Python API. The AxiDraw CLI is written within Python, and we have both exposed and expanded upon that nucleus to create a flexible and powerful Python module, complete with its own comprehensive documentation.

Just like the CLI, the Python API can plot SVG documents; it can both read SVG files and accept strings containing SVG data.

It also has features that are not available within Inkscape or the CLI: It supports direct interactive XY control. You can use absolute or relative moveto/lineto type commands to control the AxiDraw from within your own programs. This is particularly useful for a wide variety of potential AxiDraw applications that are not writing or drawing, but otherwise making use of the AxiDraw as a low-cost motion control platform.

Hershey Text v 3.0

Some years ago we wrote a neat little Inkscape extension called Hershey Text. Hershey text could take a little bit of text that you would type and render it into stroke fonts, also known as engraving fonts.

We are very pleased this week to release an all-new version of Hershey Text, written from scratch, and far more useful, capable, and extensible. We have a comprehensive user guide for it as well.

Hershey Text v 3.0 will be bundled into future versions of Inkscape, but it’s also included with the new AxiDraw software and available on its own for download today.

Continue reading Hershey Text v 3.0

New AxiDraw Software v 2.5

We’re pleased to announce the release of the latest version of the AxiDraw software, 2.5. which includes a number of frequently-requested features that we’ve been working on over the last year.

An expanded user guide

Perhaps foremost, we have updated and greatly expanded the PDF AxiDraw user guide, which covers how to use the AxiDraw, including every part of the software. In addition to sections that go over the new features, we have thoroughly revised the rest, including a larger and clearer section on getting started.

A new SVG optimization tool

In normal use, the AxiDraw software plots elements in the same order that they occur in the file. However, depending on how your file was generated, that may not be the most efficient way to do things. If the order of the elements in the file is poor enough, the plot time can actually be dominated not by writing and drawing time, but by pen-up movements (illustrated here in red) between objects.

We’ve written a new SVG ordering utility, that can sorting of objects in an SVG document, re-ordering them as needed to reduce pen-up travel. It’s also a layer-aware and group-aware sorting tool, that can process a full document and reorder elements on each layer of the document and either respect or break apart other groups in your document. This tool is available in two versions: An individual Inkscape extension as well as an integrated version that you can use automatically within the AxiDraw software.

Better support for using multiple machines

The new AxiDraw software supports assigning names to individual AxiDraw units over USB, which you can use as semi-permanent labels when printing to a particular machine. You can also now plot to a specific AxiDraw, or simultaneously plot the same document to a number of connected machines.

A new version of Hershey Text

This release includes an all-new version of Hershey Text, our software for creating stroke-based text within Inkscape. You can about the new features in our blog post announcing it.

And more!

Amongst other improvements in the new software are the following:

  • Updated to use Inkscape 0.92
  • Paths in the document are now clipped gracefully and precisely at the boundaries of both the artboard (drawing canvas) and machine travel.
  • Supports more SVG object and layout types natively
  • Faster plotting on paths with very high vertex density
  • Online version check added
  • Improves behavior of Hatch Fill extension
  • Bug fixes galore

We recommend this new version to all AxiDraw users; you can download it for Mac, Windows, or Linux, following our guide here.

Featured artist: Sash Zats

Sash Zats is a designer and generative artist working with AxiDraw. You can find him on instagram and twitter. One of the things about Sash’s work that I enjoy is his choices of materials. He often uses bold papers and subtle pen colors to bring his designs to life.

The sun and the moon

The Sun and the Moon are a compelling pair of drawings with gold and silver ink on black. The rich texture of the overlapping lines almost looks like textile work rather than ink.

maps on white

In describing these map drawings, Sash says:

For my dad’s 65th birthday I plotted places that are significant for our family.

maps on black

Continuing in the tradition of tool sharing that we have seen in generative artists, Sash included information about how he created the drawings, starting with calculating tile indices from coordinate bounds, parsing vector tiles protocol buffers, and converting to vectors before plotting with the AxiDraw.

Manhattan drawing

In a similar vein, this drawing of Manhattan buildings, blocks and neighborhood used data from NYC OpenData. Sash outlined his process for this one:

• data from NYC OpenData using httpie to filter unrelated data with
• process using #swift Xcode Playgrounds
• generate 3D geometry using #SceneKit
• export to .stl (.dae crashes #blender)
• export to SVG using Freestyle SVG to maintain occlusion
Svg Spatial Sort to optimise SVG for faster plotting
• plot using #axidraw v3 plotter

He published his Manhattan model as well.

Penrose tiling

Sash posted this Interrupted Penrose tiling with a link to Penrose’s lecture on tiling.

Anatomical heart of triangles

Delaunay triangulation is a familiar tool for generative artists, and is used in a series of drawings, including this anatomical heart drawn in white on bold red paper.

Drawing of a protein

The last picture I want to share is of the protein 5B0R, which Sash says, “when plotted looks like a badass graffiti.” I enjoy seeing science as an inspiration for art, and while I’ve seen a couple of artists plot proteins, the combination of the teal paper and light ink on this one give it a completely different perspective.

Thank you, Sash, for sharing your photos and processes! You can find more of his work, including videos of the drawing process on instagram and twitter.

AxiDraw, JavaScript, and Generative Art

Matt DesLauriers published a two-part blog post, Pen Plotter Art & Algorithms exploring his JavaScript workflow with AxiDraw and generative art.

Unlike a typical printer, a plotter produces prints with a strangely human quality: occasional imperfections arise as the pen catches an edge or momentarily dries up, and the quality of the ink has the subtle texture and emboss that you normally only see in an original drawing.

He has also posted his source code on github for the articles.

Part 1 covers getting started and explores Delaunay triangulation. Part 2 delves deeper into developing algorithms.

Using the WaterColorBot to teach programming

Water color painting titled Ocean Woman
JR has been volunteering in a high school programming class and wrote up a thoughtful post about his experiences using the WaterColorBot in the classroom. He wrote a Python library that allows users to directly control a WaterColorBot by writing Python code.

To be honest, this library is a pretty insane way to control the bot. It’s needlessly low-level: you’re manually controlling the brush’s position, you’ve got to remember to wash and re-ink the brush every so often, etc. If your main goal is to just get the bot to paint a pretty picture, there are lots of better ways to go about it.

As a teaching aid, though, it’s been a total success, because it lets students flex their burgeoning Python skills and actually make a real thing in the process! We’ve been blown away by the stuff our students have created.

He has also documented and shared his code on github.