• jan@cosmigo.com

New feature request: Canvas Recorder


It would be great if I was able to record my progress and have it output into a separate file. The feature would be very helpful in creating pixel accurate progress gifs that would be both educational and work well for socials. Recording full screen with something like OBS captures all the distracting zooming in and out and the output isn’t a nice gif.


What if you just set OBS to record the preview window so zooming in & out won’t be captured too?


PMNG is actually the only drawing app that I know of that does this - can take your undo buffer and create an animation from it, limited only by your RAM, meaning virtually infinite frames.

To do it, just be working in a saved project file with only one frame, then hit Animation > Create from Modification History.

This will create a frame per undo. Now you can save out a GIF to share, or use any of the other animation export options.


Only being able to use a single frame is too limiting. I mostly do animations.

@cageburner i use the preview window so haveing it reserved for recording isn’t ideal.

Ideally the modification history animation method would work with animations.


I see where you’re coming from, and I do agree - pixel-perfect progress GIFs are great to have.

I’m trying to think of a way this could work with the existing modification history but since each frame is more or less a snapshot of a totally different image I don’t see how PMNG would know how to put together the progress recording you’re after.

Like you suggest - I assume this would require a brand new feature that would simply record a composite state of your project every time you made a change.
But, would it record when you play back the anim to test it? What about changing the canvas size or altering the palette after it has already recorded frames with up to 256 colors?
The WIP recording could just show a continuous loop of your animation playing (at a preset frame delay?), the loop length increasing as you added frames. This would capture how the animation progressed over time but wouldn’t capture every little edit made to every frame (unless one loop elapsed per single edit which doesn’t seem preferable at all).

Could be an impressive feature. Would need a voluntary ‘start recording’ button I’d imagine.

Alternatively, there was a suggestion of giving PMNG multiple preview windows, kind of like what Photoshop has. With multiple preview windows, you could use one normally while working, and devote another one (set to continuously animate) for screen recording using a lossless codec.


Wow. I didn’t even know that feature existed. This is too awesome. Too bad it only works for single frame projects, but still. Hot damn.

Since the feature is there already, i wonder if it’s cost effectively feasible to modify it to work with multi-frame projects too? That would be incredible.

PMNG just never fails to impress.


It’s probably not possible to change undo history playback to support multiple frames because the undo history does not always know what you want to record. For example, switching to a frame x is not something that is recorded in undo history. You are on frame 1 and go to frame 3 and change a color in the palette. What would you see in the newly created animation? Frame 1 changing the colors or even nothing if the color isn’t used there. And this is only a very basic example.

The simplest approach would be to record all changes that are made to the canvas when it’s rendered, except overlays (brush, selection, rulers) etc. . But this would create a feed that has no equal speed.

What if the Preview window would get an option not to show all the overlays when it’s not the active window?
Then you could place a standard recording software on it. Like Screen2Gif.
Would that work good enough?


Sorry for long delay in response.

Recording all frame changes/navigation isn’t necessary I wouldn’t think but it’s possible I’m not seeing the full scope of things. Recording all changes that are made to a canvas sounds good actually. I’m not sure I understand the problem you are mentioning.

I’d really rather not record that window using screen to gif since I’m zooming in and out with it depending on what i’m working on; its size is pretty limited and the ask here at its heart is a full canvas 1:1 animation recording; I’m also altTabbing all the time making the burden of managing that specific part of my monitor pretty worrisome.