-
-
Notifications
You must be signed in to change notification settings - Fork 36
Home
Sandify is working on a solution to turn your cold, empty hearted, emotionless sand tables into cold, empty hearted emotionless sand table robots with enchanting patterns.
Click here for an example of using sandify in video format:
Sandify is a labor of love, but if you'd like to support me financially, I do have a Donation system set up. Or just PayPal
Part of the fun of Sandify is playing it like you would a xylophone.
Try it out first. The goal is to make it easy to make your first pattern by just clicking and scrolling, finding something you like.
Here are some features that you might miss the first time through:
Each Layer in your pattern starts with a shape. You can change the type of the shape from the Type drop down menu.
Clicking the +
button under the layer list will let you create a second layer, after selecting the new shape.
The basic shapes are just the start though. Effects will be applied to the base shape, and turn them into patterns useful for sand drawings.
Try the Loop
and Mask
Effects first, and experiment by combining many effects for something unique.
Mask Effects can impose a limit on a layer's boundaries. They can be added to any layer.
You can import thr files or gcode files to use in sandify. Sandify can't lift the pen, so only XY moves are considered from gcode files, not Z lifts.
Use the menu and select File
->Import...
Sandify can create complex patterns by running one shape after another. You can add a wipe at the beginning, or carefully combine shapes to make interesting art.
Pay close attention to the "Point" shape, which is really useful when combining shapes to make the connecting lines go exactly where you want.
Shapes also allow reversing, which will help you avoid clobbering the shapes after they are done.
In the Spin and Grow options, you can opt to use a function instead of a constant. This can make
some really neat patterns. Most basic math functions are available. Currently, the only variable I
provide is i
, which is the number of the loop (and it is a decimal, so i
might be 1.5 halfway
through the second loop).
These features are great at connecting multiple layers into one pattern without clobbering your work. They are a bit rougher around the edges, but they have been very useful for making great multi layer patterns.
These features can be added to any layer as an effect.
The machine tab lets you set options specific to your machine. These settings are kept from session to session (mostly) to save you from having to type them over and over again.
These values affect the limits of the pattern. So they don't have to be the limits on your machine. For example, if you want to just limit a drawing to 1/4 of your machine, you might set the min/max limits to that quadrant of the machine. Or if you want to draw a growing star, limited to inside a circle, you can do that with the Polar limits.
Here is a rundown of the options:
- Rectangular Machine: A machine with a min and max width and height.
- Polar Machine: A machine with a max radius.
- Min/Max X: The minimum and maximum values for the X axis, which is assumed to be the left-right axis.
- Min/Max Y: The minimum and maximum values for the Y axis, which is assumed to be the up-down axis.
- Max Radius: This is the size of the table from the center to the edge of the circle. On a Sisyphus table, this is really just a guide, because the pattern will get the output normalized. Patterns designed for a 250mm table will just be scaled larger on a 1m table. Setting this to your table will help the preview be more accurate.
- Start/End point: This helps polar tables start or end patterns at the center or the perimeter by adding points on the center or perimeter.
- Force Origin: Force the first or last point to be at one of the corners. This is useful when combining gcode outside of sandify, to return the machine to a known location.
Try to minimize perimeter moves. This will abandon the original order of the lines, and instead, finish the pattern by reducing the amount of time spent around the edges of the table. This can also change the look of the pattern, because it may not draw the line segments in the same order (and sand can compound like that) but it does move in the exact same line segments, and can save on file size and machine time.
The export button opens the export dialog. The export options will be kept from session to session (mostly) to save you from having to putting in the same options over and over.
We have a few keywords that might be helpful in the export pre and post script sections. If we find these in curly braces, we will replace them with the calculated value:
ex: G1 X{startx} Y{starty}
will be replaced with G1 X100 Y200
if the first point is 100,200.
- startx, starty: The first point in the pattern
- endx, endy: The last point in the pattern
- minx, miny: The smallest x and the smallest y (these probably won't be from the same point).
- maxx, maxy: The largest x and the largest y (these probably won't be from the same point).
If you have a pen attached to your machine, you might want to use a script like this to set up the pen.
Program start code:
G0 Z10 F300 ; lift the pen
G0 X{startx} Y{starty} F1200 ; Go above the starting location
G0 Z-0.4 F300 ; Drop the pen to negative 0.4mm
G1 F1200 ; set the speed to 20mm/s
Program end code:
G0 Z10 F300 ; lift the pen
G0 X{minx} Y{maxy} F1200 ; Move the pen out of the way
GCode will output gcode meant for marlin/grbl type machines. The output is going to be mostly G1 X... Y...
. Even if you selected the polar machine in the machine tab, these values are going to be
x and y. This doesn't have to be a sand table output. You can also attach a pen to a 3D printer and
draw sandify patterns on the bed.
Theta Rho is the format for Sisyphus tables. It is a long list of theta rho
, which is just the
angle from the center (absolute, accumulating with each rotation), and the normalized distance from
the center (0,1). This format can be used with the rectangular limits on the machine tab.
The maximum rho value will help to "pull" patterns in from the outside if the machine makes a rho of 1.0 outside the viewable area.
SVG will save the path in an SVG format. You can import that into inkscape, or just use it as an image. The svg format is used for drawing robots like axidraw. Let me know if you use it. I'd love to see it in action.
Anything that uses gcode (or thr files) can be used with sandify. But the machine this was designed for is the ZenXY on V1Engineering.com.
ZenXY was inspired by the awesome Sisyphus Kinetic Art Table by Sisyphus Industries, which is also supported.
Sandify is hosted on github.io
Please post any problems, feature requests or comments in the github issues: Sandify Issue Tracker
Sandify is a community project. If you're interested, join us.
Sandify is licensed under the MIT license. Patterns that you create and gcode generated with sandify are not covered under the sandify license (they are your work, and are your copyright).