0.5.0 & 0.5.1 | We're in the Endgame Now!


Note on 0.5.1 patch:

I accidentally shipped version v0.5.0 with a major bug that caused the program to crash when attempting to pick up a selection that included pixels located off the project canvas. This has been addressed in the patch. Sorry for any inconvenience this caused!

Better late than never!

In my last devlog, I announced the tentative full release date for Stipple Effect as June 3, 2024, despite still having another major update to release beforehand. That update is finally here! 0.5.0 ended up being way more ambitious that originally planned, so I hope you all can forgive the tardiness. With it, Stipple Effect gets a MAJOR facelift, picks up a couple of cool new tricks, and most importantly, becomes a lot faster, smoother, and more powerful.

New tools

Script brush

The script brush applies a color script transformation to the pixel that it paints over. Scripts accepted by the script brush must obey the color script contract.

Shape tool

The shape tool plots a shape of a determined pixel width. It can be used to draw rectangles and ellipses. By holding Shift while drawing the bounds of the shape, a rectangle will be snapped to a square and an ellipse will be snapped to a circle.

Optimizations

Selection

Despite the bells and whistles, the crux of this update are the optimizations made to key parts of the execution loop. Selections have been causing significant slowdown since I started Stipple Effect. Do address this, I (1) redesigned my approach to rendering selection overlays from the ground up, and (2) reimplemented the selection logic using boolean[][] masks to represent the selection instead of Sets of pixels.

  • Optimized selection overlays
  • Optimized selection logic
  • Optimized search algorithm (Wand and Fill tools)

State management

Before this update, Stipple Effect would check the available JVM (Java Virtual Machine) heap memory and dump the oldest project states if the DUMP_STATES setting flag was enabled and memory was precariously low.

Now, the program discards the intermediate (granular) projecrt states after five new checkpoint project states. An intermediate state is a project state that does not correspond to a completed action. For example, drawing with the brush tool will produce a range of intermediate states for every time that the target pixel is updated from the beginning of the brush stroke to the end. As long as five actions have not been completed since the end of the brush stroke, the user will be able to iterate back to each target pixel update within the operation. However, this level of precision becomes irrelevant after a few actions are completed, so these states are discarded in the interest of performance.

  • Now discards intermediate (granular) project states after five new checkpoint project states

Themes

Theme comparison

Themes are now fully realized! Stipple Effect has five alternate themes, each doubling as a distinct visual work environment and a reference to something that carries personal significance to me:

Neon

A dark theme that reflects how much of Stipple Effect I developed at nighttime

Zo

A loud, bold theme that is inspired by Haitian Vodou and my love and admiration for African diasporic religions and traditional West African belief systems

Bunkering

A theme inspired by the environmental crisis brought about by oil pollution in the Niger Delta region of southern Nigeria, where the maternal side of my family comes from

Asylum

A light, greyscale theme that is meant to raise awareness about the importance of mental health

Ramallah

A theme inspired by the Palestinian liberation struggle

Other Changes

Other updates in 0.5.0 include:

  • Images can now be pasted onto the canvas from the system clipboard
  • Added relative frame durations so some frames can be displayed for more or less time than others
  • Added history dialog (Shift + Y) where users can browse all cached project states and revert to any of them
  • Polygon Select now has a “close polygon” shortcut (Shift + Left Click)
  • Added “snap to target pixel” behaviour (Shift + Enter)
  • Stretch operation can now be snapped to the pixel grid by holding Shift
  • Added playback controls to preview dialogs
  • Added keyboard controls to the preview window’s playback controls
  • Changed frame limit from 100 to 300 and layer limit from 100 to 50
  • Increased maximum canvas bounds to 1920 x 1080 pixels
  • Improved selection transform node manipulation

Changelog

For the full changelog, please refer to the GitHub release.

What’s Next?

Stipple Effect will be officially released (version 1.0.0) in the next couple of days. What does this mean for the program?

This is the last major development version of Stipple Effect, and is also the last major version of the program that will be available for free. Once Stipple Effect is released, new users will have to pay to download the program here on Itch.io. However, for those who do not have the means to pay for the program, it will still be possible to compile the program from source. The repository will accordingly remain open-source, and will provide detailed instructions on how to compile the program.

The release version will also be distributed under a license.

Files

Stipple Effect v0.5.1 (Windows Installer) 149 MB
13 days ago
Stipple Effect v0.5.1 (Cross-Platform Build) 3.6 MB
13 days ago

Get Stipple Effect - Pixel Art Editor & Animator

Buy Now$3.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.