Releases: jeffeb3/sandify
Sandify v1.1.1 - Image Import
New Features
Image Import
You can now import images and Sandify! Check it out:
The image import is in the file menu.
Try out the different "Type" options and adjust the brightness and contrast to get something that works for you. If you like it, please share it with us.
Noto Emoji Font
Ben Hamilton added a great new feature to do line drawings of emojis.
To use this feature, make a new Fancy Text layer and select the noto emoji font. Then just paste in some emojis and you can figure out the rest.
Thanks Ben! 🎉 🎆 👏
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1e.com/t/image-import-and-emojis-in-sandify-update-v1-1-1/45457
But, as always, feel free to post issues with bugs you find or features you think would be great.
Sandify v1.0.0
New Release
Bobnik has been cranking out this v1.0.0 release with a huge update. Quick notes:
- Save/Load .sdf files are now a thing
- Effects are more modular and can affect any layer
- Updates to the style, and preview for a fresh feel
- Big updates on the back end. Hopefully you will only notice it being smoother
- Lots of ground work for future updates.
Bob has been working on this almost every day for a long time. We have had good design discussions, but it was Bob driving this huge update. Thank you, Bobnik!
This is a big update, and even little updates introduce bugs 🐛. Please report anything that isn't right, and be patient as we work through the updates.
Video Overview
Check out this complex pattern built using sandify v1.0.0:
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1engineering.com/t/sandify-update-v0-2-6/29098
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
File Menu
Save as .sdf 🎉
The .sdf format is just a text file with the json representation of the state.
This may not always be backwards compatible. We have a lot to learn about doing these kind of file formats, but at least with one version, you can save and reload your work. I warned you.
New
Since the session is saved, we needed to add a button to get a fresh start.
Load vs Import
Loading a .sdf file will replace the state with what you saved. Import will take in a .gcode or .thr and use those vertices as a layer in a pattern.
Pro Tip
If you make a simple shape in CAM and import it as .gcode, you can now add a loop effect and take any shape as the kernel for sandify loops.
Effects, Layers, Groups, oh My!
The core way we store patterns is different. The looping, scaling, and spinning of basic shapes is now an effect. Fine tuning, Track, Move and Scale, and some other features that were part of the shapes are now all effects. So plan on using effects often when making new patterns.
Things like Mask, Noise, Warp are still there as effects.
Many More
There are a ton of other features, including preview zoom, multiple machine configurations, new style and a slick looking about page.
Sandify v0.2.8
New Release
This is a bug fix release. Bobnik fixed our gcode import bugs and stomped out a few warnings and long lived issues:
Forum Discussion
The forum post, where you can comment or ask questions is here:
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
- Fixed gcode import 🎉
- Changed G01 to G1 in the gcode export
- Some small warnings/issues for developers
Sandify v0.2.7 (again)
A very minor release to remove the banner (since we passed the deadline).
See https://github.com/jeffeb3/sandify/releases/tag/v0.2.6.7 For a release log.
Sandify v0.2.7
New Release
Let's get right into it. Bob added the fanciest new feature, fancy text:
Forum Discussion
The forum post, where you can comment or ask questions is here:
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
New Shape 🎉
Fancy Text 🧐
Choose the "Fancy Text" from the drop down to try it out.
Guts ⚙️
- Fixed a bug with the preview slider that was super annoying.
- Updated test framework.
- Updated dependencies (thanks dependabot)
Sisyphus Contest
We are excited for the Sisyphus Design Competition/Contest. It is a neat way to give people an excuse to make and share. We added a subtle banner to the contest on our header. We will remove it after the contest. So expect a tiny release after that happens.
Sandify v0.2.6
New Release
It has been a while since we released, so we have quite a few features to share. Bobnik has been making PRs and I have been merging them, and adding a few of my own.
This release has some new effects, circles, SCARA GCode output and performance improvements.
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1engineering.com/t/sandify-update-v0-2-6/29098
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
New Effects 🎉
This is an expansion of the mask effect which can distort and manipulate a base shape with some neat patterns. Some simple effects can really make a pattern wilder, or more sculpted, or... IDK, use your creativity and try it out!
To use an effect or a mask, start my making a layer to effect and clicking on "New". In the modal, select one of the effects.
Noise Effect
This effect adds the Perlin Noise (similar to the Noise Shape) on top of another shape. In this first example, we apply it to a wiper, but it can be any shape underneath the effects.
Fish Eye
The fish eye effect looks like a bubble underneath the surface of your patterns.
Warp
There is a custom warp function where you can define your own math for what distortion you want, and we have made a few good previews to make some really funky patterns.
Inverted Mask
This is a new function on the mask effect. It can cut parts out of your pattern. I am excited to see what you all make with it. Please share!
New Shape 🎉
Circle Packer
The Circle packer is a new wiper that fills the space with circles and then automatically figures out which order to draw them in and how to retrotraverse to get to them all. Very smart stuff, Bob.
SCARA
There are a few passionate users who are using sandify with SCARA machines that don't understand they are SCARA machines. 🤷 . For these users, I was keeping a python script for converting the .thr
files. But instead, We've added a SCARA output. This is for a very specific type of machine, and there are some details in the wiki: https://github.com/jeffeb3/sandify/wiki/Scara-GCode
Use arrow keys
Use arrow keys on the preview to adjust the offsets of the shape.
Guts
We spent some time working on the events and what gets calculated when. Complicated patterns, with multiple layers should be easier to create. Hopefully, you won't notice anything, but just be happier. Bob: 💯
Sandify v0.2.5
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1engineering.com/t/sandify-update-v0-2-5/24210
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
Noise Wave
First, there is a new shape for your tables. The Noise Wave makes some great looking patterns using random noise. Check it out.
Masks
Masks are a really neat feature to use our existing limits features to edit the shape of a single layer. They work by just adding a mask
layer after a shape layer, and then that shape layer can't extend past the limits of the mask. The wiki has a cool gif to show it better:
Fine Tuning
When combining layers together, @bobnik found some great tricks that really helps tie in multiple parts together.
They are a little rough, but we've found them so helpful for not clobbering a pattern you just made that we have to fit them in somewhere.
There are more details in the wiki
Circular Direction
The circle shape can now go in the opposite direction. That's cool.
Sandify v0.2.4
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1engineering.com/t/sandify-update-v0-2-4/19857
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
This release focuses on one huge new feature 🎉
Layers! 👏
@bobnik spawned this great new feature that allows you to intuitively compound other shapes and features into a single pattern, with the preview. Here are some things to notice:
- You can create new layers with the New button, Import button or the copy button.
- You can select a layer in the new layer area.
- You can change the order of the layers by dragging them in the layer area.
- You can still manipulate the layers with your mouse in the preview area, or with the options on the right.
- All the previous features, grow, spin, track are all there.
- A new "Point" feature was added to help connect-the-dots between patterns.
We have instructions (sort of) in the wiki 📓
https://github.com/jeffeb3/sandify/wiki
We have some new variables in the export pre and post scripts. 🔢
https://github.com/jeffeb3/sandify/wiki#export-variables
You can more easily do pen drawings with gcode like this:
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
Sandify v0.2.3
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1engineering.com/t/sandify-update-v0-2-3/17524
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
These are the changes you'll see when you visit Sandify.org from now on:
Drag Patterns
Bob (@bobnik) has worked out a great way to perfectly place patterns where you want them. This is the first
step towards multiple pattern composition, and it is very useful with even one pattern. Here's what
you can do:
Drag to Move
If you just use your mouse (or touch screen) in the preview window, you can move the pattern around,
and it will place the pattern just where you want it. It also will update the fields for offsets,
which will give you fine grained control.
Scroll to Grow
You can change the total size of the pattern by adjusting the starting size, number of loops, or the
grow value. But now you can adjust the entire size by either scrolling in the window, or by
adjusting the corners of the box handles. We've tried this on the platforms we have, but let us know
if it doesn't work on your platform by opening an issue.
Handle to Rotate
In the same vein, you can rotate the entire pattern, from start to finish by grabbing the rotate
handle or adjusting the Rotate
value on the shape. I have found it very useful to get the angle
just right to fill up my rectangular workspace.
Rad Lines
Maksim Surguy (@msurguy) has some very neat tools for creating svg images, which can be used for
axidraw style plotters, which work from inkscape. There is a huge universe out there, which I am
just getting familiar with. The constraints are different (we can't pick up our pen), but there is a
lot of room for collaboration here. Maksim reached out and has helped me figure out the first few
features that I have tried to replicate in our ecosystem.
Round Polygon Corners
Borrowing from the Rad Lines tool, You can round the corners with a new parameter.
Math Spin and Grow Functions
Also from the Rad Lines tool, You can use equations for the spin amount and grow amount, to
create any pattern you want (if you can figure out the math).
SVG Output
The original intent of exporting SVG patterns is to help some users of inkscape and axidraw who
might want to draw sandify patterns on their machines. But after I finished it, it has become my
favorite way to save patterns. You can open the images in any browser and many image editors. But it
also has the parameters used in the comments, so you can recreate the patterns later.
What else can we do with SVG files?
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="475" height="465" title="polygons" version="1.1" viewBox="0 0 475 465" xmlns="http://www.w3.org/2000/svg" class="svg-paper">
<g>
<!-- Created by Sandify -->
<!-- https://sandify.org -->
<!-- Version: 0.2.3 -->
<!-- Machine type: Rectangular -->
<!-- Min X (mm): 5 -->
<!-- Max X (mm): 480 -->
<!-- Min Y (mm): 5 -->
<!-- Max Y (mm): 470 -->
<!-- Content type: shape -->
<!-- Selected Shape: Space Filler -->
<!-- Type: Sierpinski -->
<!-- Iterations: 5 -->
<!-- X offset: 0 -->
<!-- Y offset: 0 -->
<!-- Path reversed: false -->
<!-- File name: 'Sierpinski' -->
<desc>pwidth:475;pheight:465;</desc>
<path
stroke="#000000"
stroke-width="0.4mm"
fill="none"
d="..."
</g>
</svg>
Sandify v0.2.2
It's been just two weeks since we released 0.2.1. But it has been so fun to work on, we've got a lot of stuff in this release.
Forum Discussion
The forum post, where you can comment or ask questions is here:
https://forum.v1engineering.com/t/sandify-update-v0-2-2/17079
But, as always, feel free to post issues with bugs you find or features you think would be great.
Release Notes
These are the changes you'll see when you visit Sandify.org from now on:
L-Systems
Bob has been working on some neat new shapes based on the algorithms of L-Systems. The premise is, you write a few basic text based rules, and then recursively replace the text. At the end, you use the text to generate movements. It creates some very neat fractal patterns, and there are a lot of neat known patterns. The wikipedia article is pretty informative, and there are neat online calculators where you can try to make new ones, but Bob has picked a lot of them that work on our tables. Check them out:
Space Fillers.
These are L-System based, and have been tweaked to fill the entire surface area of your table.
Fractal Line Writer.
These are more generic L-Systems. They make some very interesting designs, especially if you are a fan of fractals. It is really interesting to me to see how they change from iteration to iteration.
Performance Improvements
These L-Systems can be pretty heavy on the calculations, and we want to keep sandify fun and fast. So we've done some additional work under the hood to reduce the number of times we recalculate the hard patterns. You should see things like the preview progress slider move a lot smoother now. Some of the shapes take a second or so to draw the first time, but are relatively quick after that.
GCode Input
We've had the .thr input for a while. The same button now will let you import .gcode and .nc files. Then you can scale the pattern to fit your machine. I hope people will find interesting patterns in sandify, or export interesting patterns from inkscape, or other CAM software and then share them. Now that we can import them, they can end up on polar tables, or just other cartesian tables.
Karltinsly has several great gcode files in his github: https://github.com/karltinsly/SandTableDesigns. Be sure to stop by the forums and give him a thumbs up.
Spiral Wiper
People have asked for this pretty often, and although it was possible to do the same thing with a circle shape, this is much easier. The Wiper tool can now do a circle. Don't forget, you can reverse this shape if you want to end up in the middle at the end of a pattern. If you have your machine limits in mm, then the Wiper Size is the distance between the lines in mm. So 12 (the default) is set to just cover everything once with a 1/2" ball.
Perimeter Optimizations
Not as flashy as some of the shapes, but it takes a lot of work to get it right. @mrehorst did it first, in a post processing perl script. But great minds think alike, and Bob also wanted this feature, so now it is part of sandify.
Basically, if the pattern goes more than halfway around the perimeter, or moves one direction, and reverses along the perimeter, the optimization removes that. The perimeter moves are not precious, and for some patterns it can reduce most of the time spent. There is also a toggle to optimize the inside elements, but take a close look at the preview first, it will do the lines in a different order.