Jam Submission - Vector Graphics Tool

green_blend_to_red.png

My goal was to reinvent a program like Inkscape or Adobe Illustrator. These were the ideas I wanted to explore:

  1. The user can control the "softness" of the edges between neighboring shapes similar to Photoshop's smudge tool, except the "smudge" is a first-class component of the vector data rather than a post-processing effect in raster space.
  2. No Z order for shapes. Instead, shapes drawn over of other shapes "cut into" the underlying shapes as a boolean difference. I wanted to experiment with this to see if it simplified a specific workflow I had in mind.

The end result is that I ran out of time and didn't finish implementing either idea. Currently, the editor allow only drawing shapes and color selection.

I made this submission as proof that I participated in the jam, but there's nothing interesting to see here until I finish implementing the ideas above. I hope to continue working on the code and finish a complete prototype by the end of this week.

https://github.com/timothy-barnes-2357/line-decker

Here is a short demonstration video. The "horizontal blinds opening" effect is due to software rendering the scene with different threads working on groups of scanlines.

I don't know exactly what the issue is, but even though SetSwapInterval is set to 1, the application render as fast as possible:

  • CPU at 100%, frame time less than 3ms in "wireframe" mode;
  • CPU at 15%, frame time less than 1ms if "filled" mode.

The ideas you're building your vector editor around are definitely interesting and I'm curious to see where else you could take them.

Is the intent of the "cutting" behavior to allow you to blend between overlapping shapes? That would definitely be an interesting effect and I could see it being useful in some places. I do think I would want shapes to simply overlap sometimes, but blending would also be a useful operation to have.