Pixel_Waves Node (Official Release)

john's Avatar

john

09 Apr, 2026 02:07 AM

Here is the official release of my pixel_waves node. See my earlier post for the evoluition of the node.

Pixel_waves takes seven parameters:

  • Pixels. A group of pixels made from a single resampled path mask. You must resample the path to produce straight line segments to place the waves on.
  • Type. Wave type: Sine, Square, Triangle, or Sawtooth
  • Amplication %. A magnification factor used to increase or decrease the amplitude. This allows adjusting the output to fill gaps between concentric circles, arms of a spiral, etc. By changing the spacing around the waves, it can make the overall image appear darker or lighter.
  • Max Density. Controls the total number of waves per pixel for the darkest pixels, which is also the total shades of gray. The default of 10 may look good in images but will usually be too dark for plotters.
  • Close Path. Check if the mask path(s) are closed (e.g. concentric circles). Leave unchecked if the mask path(s) are open (e.g. a single spiral).
  • Travel. The amount to shift the wave. For plotters or still images this should be left at zero. For animations, attaching a frame node to this parameter will cause the waves to travel along their paths.
  • Retain Pixels. Check if you wish to render each source pixel as a separate wave segment, colored like the pixels. Leave unchecked if you want a single continuous wave for each source path. Plotters should leave this unchecked.

For best results you will want to find the best mask path(s) and image settings, then choose a wave type and adjust the amplification factor to tighten any gaps or reduce overlapping sections and the max density to adjust overall darkness.

The attached demo shows two renderings from the same image of a cat. The left image is a continuous spiral of sine waves rendered to preserve original pixel coloring. The right image shows 37 concentric circles, each rendered as triangle waves in a continuous path.

I have also attached an animation showing a rotating spiral mask on the left and traveling waves on the right.

Feel free to substitute your own images and masks and play with all the settings. You can achieve a higher resolution by tightening the mask and decreasing the resample length, but this may increase rendering times for large images. You can change wave types and increase amplification to overlap them to create interesting effects.

The original impetus for this node was to provide a new way to plot images using continuous paths. I hope the max density setting will allow plots that are not too dark even with fine pens, but I do not have a plotter of my own to test this. I hope Floris or someone else in the Nodebox plotter community will give this node a try and share their results in this thread.

As always, I would be delighted to see what people do with this thing!

  1. 1 Posted by florisdejonge on 17 Apr, 2026 08:23 AM

    florisdejonge's Avatar

    Hi John,
    It's a cool node. You can find my test of the plotted drawings attached. I've drawn it with a 0.25 rotring on A4 size paper. I used the spiral. As you can see that works quite nicely. Am I correct in that the pixel_waves node results in 5 or 6 levels of brightness? Or: how can one create smoother gradients? Do you think the amplitude in addition to the density can also respond to the brightness?
    Floris

  2. Support Staff 2 Posted by john on 19 Apr, 2026 11:02 AM

    john's Avatar

    Floris,

    Thanks MUCH for testing this node with an actual pen. Looks good!

    Obviously, some photos will work better than others. I think by playing with different masks, wave types, etc. you might be able to create some really interesting plots. I will be curious to see if you use this node in any of your actual work.

    You are correct: the max density does also define the total number of gray values, so lower density also means lower detail. Of course you can control the amplitude as well as the max density, but this is the uniform density for the entire plot. I think by mixing the two you mean vary the amplitude across each PIXEL to create more local detail. This might produce smoother gradients, but you would lose the stylish effect of uniform amplitude.

    It might be a good trade in some cases, but I'm not sure how much farther you can push the concept of representing pixels with waves. To really achieve more photographic results, I think you would need to break free of waves altogether and instead use a wide variety of different maze-like local paths to simulate dozens or even hundreds of different shades - a kind of sophisticated dithering.

    This would take a lot more research and experimentation. The result would be clearer photographs on a plotter, but you would lose the charm of waves. I think this node now does its job fairly well. The next stage would be better served by a different node, maybe "dither".

    Aside: I think my library is now so overwhelming, and the number of people clamoring for new nodes is now so thin, that I'm not planning on cranking out many more new nodes. I would have to be seduced into doing it.

    John

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Already uploaded files

  • pixel_waves_screenshot.png 3.98 MB
  • pixel_waves_node.zip 171 KB
  • two_cats.mp4 4.11 MB

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

19 Apr, 2026 11:02 AM
06 Apr, 2026 08:40 PM
12 Mar, 2026 01:15 AM
10 Mar, 2026 03:15 AM
22 Jan, 2026 08:50 AM

 

22 Jan, 2026 07:17 AM
19 Dec, 2025 07:35 AM
26 Nov, 2025 06:16 AM
24 Nov, 2025 03:36 PM
16 Nov, 2025 11:08 PM
25 Oct, 2025 02:52 AM