Skip to content

Tut_OverMain

jmalmsten edited this page Jul 15, 2026 · 2 revisions

Overview of the GUI

This overview of the GUI is written with the VOP0.16.10 in mind. This software is in active development and it means that things can and will change before the wiki is updated.

Header

Screenshot of the header

Version number

The version currently installed.

Main

This page-button shows the Main interface used for animating and exposing frames.

Calibrationn

This page button switches the VOP's GUI over to the calibration page where tools for exposure, auto-white balance. Noise floor clamping and defective pixel fixes.

ADM

This is not a page button, but instead a toggle that enables the Animation Desk Mode (ADM). This lets you take exposures and manually advance the playhead. It's intention is to enable the VOP to be used in setups that use animated elements between the projection screen and the camera. Cel, cutout, clay, puppets. Your project sets the limits.

default is disabled.

ONLINE / OFFLINE

This shows whether the GUI has contact with the VOP without you having to press a button and guess.

Status

Screenshot of the status section This bit is where you see what the VOP is doing right now.

Status Bar

This is a live updated area that shows status of the VOP. Links to latest workprint when a job is done and estimated time and size for a job during a run.

RENDER PRORES

If juggling TIFF sequences is a bit of a faff, you can tell the VOP to generate a high quality Quicktime ProRes4444 video, at the camera resolution. It's not fully uncompressed. But it is compatible with all the major NLE's and Compositing softwares. The VOP uses ffmpeg for this and once the render is done. The browser should download it automagically.

RENDER WORKPRINT

If you need to manually trigger a workprint render, this button is here. It fires up ffmpeg, does a low quality h264 file and gives you a download link.

EXPORT JOB

If you want to save a very nifty job to brag or for simple backup/preservation. Hit this button. It will make the browser download the current_job.json file as it is to your computer. It should hold all the information for the job. Importantly, this json file is purely a text file. None of the artworks loaded into the VOP gets saved in this procedure. You need to keep them backed up yourself outside of the VOP.

IMPORT JOB

What good is exporting a job when you can't import them as well?

Maybe you have an old job you want to re-run, check a friends exposure sheet or return to an ongoing 500 keyframe 2000 frame animation. I won't judge. But with the IMPORT JOB button you should be able to import the .json file into the VOP. It doesn't really care what the file is named. So you can rename it StupidMalmsten.json or something to know what it has inside it. When imported. It will be given the standard current_job.json so that the VOP knows what to do with it.

But remember. The VOP is under constant development so a job from long ago can probably be incompatible with the latest codebase. You probably need to wind the git back to the time when that job is compatible for the import to work.

PANIC / ABORT

This is a big red button. It's the emergency stop of the VOP. If you started the exposure sequence of a 529 frame animation and at frame 3 you realize that you messed up a setting or input. You do not want to waste time and storage just waiting for a botched job to finish. Just hit the PANIC / ABORT button. Then nuke the cam mag to start over from scratch.

NUKE JOB

This deletes the current_job.json that the VOP uses to know what the job is. Use this button to start over. Remember. No undo's in the VOP. If you press this and confirm. You will lose work.It'll show status bars, estimations of the job and links to workprintsIt'll show status bars, estimations of the job and links to workprints

Mags

Screenshot of the Mags section Here we have the bits that handles the Camera Magazine (CAM MAG) and the projection mags (PROJECTION MAG, PROJECTION BIPACK 1 and PROJECTION BIPACK 2)

UPLOAD and NUKE

All four has the ability to upload stills and videos for use in jobs. You use the UPLOAD button on each for that.

When you want to clear out whatever is in the mag, you can press its NUKE button. This is destructive and cannot be undone in the GUI.

Frame counter

Each of the mags have a segmented display styled frame counter that shows what is active at the moment. It has thee states.

----/----

This is indicating an empty mag. Nothing is uploaded.

####/####

When there's numbers in this display. A video has been uploaded and ingested as a TIFF sequence. The left side shows which TIFF is loaded in the mag gate. The right side shows the runtime in number of frames. So a video of 149 frames where frame number 23 is active in the gate The display will show 23/149

SINGLE FR

When only a single still is uploaded to the mag, the display will show as SINGLE FR to differentiate from when a video is uploaded.


The following is only on the PROJECTION MAG, PROJECTION BIPACK 1 and PROJECTION BIPACK 2

Eyeball

This is used to enable and disable that layer. It controls if the mag should be ignored by the renderer, and when it's disabled, its columns are also hidden while the eyeball is disabled.

World Scale controls

In order to help out moving the images around in 3D. Each of the mags on the projector side have controls to set the world scale.

Ref Z

This sets how far away from the camera the image should be to fulfill the FIT FOV and FILL FOV buttons. Default is -1.0. You can change this if you want.

World Scale

This is a float setting how much the mags 3D world is scaled. This defaults to 1.0 and will be updated with the FIT FOV and FIlL FOV buttons.

FIT FOV

This buttons tells the VOP to scale the mags 3D world so that at the distance set at Ref Z, At X & Y coordinates at 0.0,0.0, and no rotation, the image should be just big enough to touch the edge of the virtual camera's frustum.

FILL FOV

Same as FIT FOV, only with this, it fills the cameras view at the same position and rotation.

Preview Area

Screenshot of the Preview Area

This is where you see images and try to judge placement and exposure.

Preview Window

This is the closest the VOP has to an eye-piece. This is where the image can be previewed both as raw image, and after exposure. You choose what you want to see by using the CAMERA section on the right

Fun fact about it. If you think the image is too small, you can right click on this image and open it in a new tab to scrutinize details better.

Waveforms

Luma Waveform

This shows a waveform representation of the brightness of the pixels.

RGB Waveform

This shows the same as LUMA but the RGB channels have been separated, colorised and overlayed.

At the moment there's no straight RGB Parade option.

CAMERA

Screenshot of the Camera Section

With this section, you control the camera. You'll be using this quite frequently to select frames you are looking at and how you want to view the image. It's also here where you do destructive captures and processing.

Frame

This is an integer input that functions basically as your playhead. If you want to see what the VOP will be doing on frame 12. Then enter 12 here and hit the PROJ PROBE button.

Sub (0-1.0)

This is an input that only applies to the PROJ PROBE button. As the VOP is built to be able to move the artworks during an exposure. When you preview the image position and rotation, you need to knkow where during the smear you want to look. It's a float input. 0.0 is the start of the smear. 1.0 is the end of the smear. And 0.5 is the middle of the smear. Very useful when you want to just look at the image without a full smear and still know where in the smear you are looking.

PROBE PREVIEW

This sets the playhead to the selected Frame and Subframe to the inputs you set above. It performs a quick composite of all enabled layers at the selected frames. And pushes the resulting still image to the preview window. This is helpful when you want to quickly check positions without doing a full multi second exposure. It will be showing the image as it is in that sub frame but not through the Pi Camera.

CAM VIEW

When you have set up a smear and want to quickly check that it makes the smear you want. Then you hit the CAM VIEW. It will run the whole smear motion during a full exposure according to the exposure sheet. And then push the result to the preview window. This button does not touch the contents of the camera mag. You can safely do multiple CAM VIEW checks and waste only your time.

This button ignores the Sub Frame input

CAM PROBE

This one is like the PROJ PROBE. But instead of peeking on the image that will be shown on the Projector Screen, you can here peek at what is in the Camera Magazine at that frame.

Very useful to remind yourself what the latent image in the CAM MAG looks like without doing anything destructive to it.

This button ignores the Sub Frame input.

COMP VIEW

This button is like the CAM VIEW and CAM PROBE combined. It runs a full exposure run of the selected frame, does a temporary double exposure composite with the frame in the CAM MAG. And pushes the result to the Preview Window. Nothing is however altered in the CAM MAG files

This one is useful to see what a full multi exposure will look like for that particular frame.

This button ignores the Sub Frame input

LAB / INVERT

As the VOP's LIME system is based on strictly additive composites. In order to make something darker, you must use light to create darkness. To do that. You "send the cam mag to the lab" or "Invert it". You do that with this button. Once you hit it and confirm. The VOP will go through the CAM MAG and invert the channel data of all the frames. Once it is done. You can then run a job that burns in what needs to be darker. And then hit the LAB / INVERT button again in order to get back normal colors.

Without this button. You basically cannot do holdout mattes for multiple exposure jobs.

EXECUTE SEQUENCE

This is the big one. When you hit it, you tell the VOP that everything is set up as you want. The VOP will then go through frame by frame according to the Exposure Sheet and do the exposures, and if previous exposures for the frames are present. It will add the new exposure to the latent image according to the LIME methodology.

This is a very destructive button. Remember. There are no undo's. If you mess up. You have to start ALL OVER AGAIN. This is a feature. Not a bug. :)

HARDWARE CONSTANTS

Screenshot of the Hardware Constants Section

This section has the constants that aren't animated during a job.

FOV

Field of view of the camera. Increase this for more extreme perspectives. Decrease it to get closer to orthographic or telescope compression.

Default is 45degrees.

Cam Res

This is the Camera Resolution used during the job.

Full Sensor (4:3)

These Resolutions use the full sensor area. No extra crop factor.

2028x1520 - Binned (Default)

Half res full sensor. For most situations. This will be well enough of pixels.Binned in camera for best image quality.

4056x3040 - Full

Full resolution of the sensor. When reasonability is not an option.

Vertical Crop (1.88:1)

These crop a bit of the top and bottom to reach a more native widescreen capture.

2028x1080 - Binned

Like the default option. But vertically cropped.

4056x2160 - Full

Like the Full height full res option. This uses all of the pixels of the sensor while cropped to slightly wider than 16:9.

Center Window (4:3)

1332x990 - Binned

This mode is originally used for high speed filming... I don't know why you would want to use it on the VOP. Bugt the option is there for completeness.

FPS

While the VOP mostly just works with individual frames. It can do some video exports. So you can use this to set the framerate of the video exports. Default is 24 fps for traditions sake.

Gain

Simple video gain. You can use this to boost the pixel brightness in exchange for a raised noise floor. Default is 1.0 or no added gain.

AWB R and AWB B

These two inputs set the white balance of the camera using individual gains for the Red and Blue Channels. If you need to adjust them manually. There they are. To control amount of Green, you need to increase or decrease both Red and Blue. Green stays as a constant as the CMOS sensor has double of those sub pixels.

Comp

You have the option here to either go fully uncompressed for the TIFF sequences. Or use lossless ZIP compression. Depending on the content recorded, the ZIP compression can be half as big as the uncompressed.

Sensor Color

This is a toggle menu to select how the VOP should work with the color channels.

Color

This is a regular mode for full RGB sensor data. It's the default and works just as most any color camera you know.

Mono

This is almost an exploit to use when you know a frame only needs a single color tint. When selected for a job and EXECUTE SEQUENCE is started. The image is shown on the Projection Screen in monochrome black and white. The sensor photographs it like that. Then, in the VOP. Before it gets superimposed to any previous image (if present), the VOP multiplies the pixel data with the CG (Camera Gel) color of the frame. The upshot with this method is that you can get a single tinted exposure while lowering the visible noise as by showing it to the camera in black and white, the VOP can then disregard any deviance from pure monochrome for the input.

It should however be noted that when I use this. The channels do tend to clip quite fast. So I often go over the sequence a second time to do a highlight pass where I set all the CG fields to white and keep the Sensor Color set to Monochrome.

Rotation Order

There are times when you want to rotate an axis before another axis. This input gives you the choice of which axis should rotate in which order. Default is XYZ.

PAR (anamorphics)

This input lets you use a non-square shape for the pixels to maximise the number of pixels used on the Projection Monitor.

For example. If you have a 16:9 monitor as the projection monitor. You can set this to 4:3. This will result in the image getting slightly squeezed into view horizontally. But when played back with the same Pixel Aspect Ratio, you get the full full HD pixel resolution while the image is stretched to 21:9 or close to cinemascope.

When doing these calculations manually. It is best to concentrate on the aspect ratio of the screen that the camera can see.

The inputs are flexible. You can enter 4:3 or 1.33:1 and get basically the same image.

Default is 1.0:1.0 for a regular square pixel behaviour.

Preview unsqueeze

Use this checkbox toggle to see the PAR calculated and squeezed back to the full width or height instead of the distorted view. Default is off.

Target AR

If you want to use the above PAR settings. But you can't be bothered to do the maths yourself. You can put in the Target AR into these boxes and hit CALC PAR. The VOP will then look at the Target and look at the resolution of the projection screen, it will assume the projection screen uses square pixels. And that the whole screen is framed inside the cameras view. And then it will calculate the necessary PAR values to get to that Target AR.

EXPOSURE SHEET

Screenshot of the Exposure Sheets Section Screenshot of the Exposure Sheets Section

Here we do the actual animation. Like with paper exposure sheets. This one has time going from top to bottom and the various keyframeable elements are columns.

Depending on SMEAR MODE and visibility toggles. Columns can be hidden or shown.

SMEAR MODE

Here you choose what mode you want the smears to follow.

Smear Enabled

These modes enable smearing of the artwork during exposure.

SSS

Simple Smear System (SSS) is essentially an overclocked motion blur. Use this when you want to draw a motion curve that the artwork then is animated along. The motion blur can be overpowered in as much as its length can be longer than the distance between frames.

MDS

MultiDimensional Smear (MDS) is my personal favourite and is the default you'll see when powering on the VOP.

This lets you set an animation for the whole shot, but you also get to manipulate what the image will do during each frame and you are not forced to follow the curves positions and rotations to do so. You get a second couple of pairs of Position and Rotation inputs per keyframe to set where the artwork should be at the start and the end of a frame. The simplest application are extrusions. But with imagination, a lot of weird thins can be achieved.

HDR / No Smear

These are experimental modes designed to let you load higher than 8bpc images into the projection side and have them shown in various ways so that tonal detail survive a projection screen that is limited to 8bpc.

I have yet to get these to work however.

DRE (Experimental)

Dynamic Range Extender (DRE) tries to show the image with subframes gradually fading the image so that highlights are exposed for longer than shadows

HDR (EXPERIMENTAL)

This uses more normal exposure stacking. Where the image is shown for a set number of times with tonal ranges separated.

This is the keyframe number. Not editable.

FR

This is the Camera Frame number that this keyframe targets.

INT

The Interpolation mode of the keyframe. To set timings between each interpolated inbetween frames.

Smooth

This tries to ease in and out of the positions without stopping on the way. This is the default

Linear

The more rigid and simple linear animation mode. Where the image is moving the same distance between frames as all the other frames between keyframes. This produces a more robotic movement that resembles a lot of older animation styles.

C

The Corner toggle. Enable this to make that keyframe a sharp corner.

PM POS (X,Y,Z), BP1 POS (X,Y,Z), BP2 POS (X,Y,Z)

The image's position in the virtual 3D Space. It holds three comma separated floats. Default is 0,0,-1. All three images use the same syntax

How much a unit is for position is determined by the World Scale set up above.

PM ROT (P,R,Y), BP1 ROT (P,R,Y), BP2 ROT (P,R,Y)

This sets the image's rotational values. You can use the Rotation Order menu above to change which of the three comma separated float axis is applied first.

The three values are floats. Meaning that one full rotation is 1.0. not 360. One and a half rotation is not 360*180=540 but instead it's 1.5 . This may seem strange at first. But it greatly simplifies maths for me as a user when dealing with multiple rotations.

PG

Projection Gel (PG) is a virtual gel that you can set for a keyframe. The composite of the up to three images are multiplied together and then multiplied with the color values of the PG field. This can be set to change over time. Default is White (FFF) so that it's technically transparent and Disabled.

CG

Camera Gel (CG) is a virtual gel that can be set up per keyframe. As the name implies. It takes the color you set there and multiplies it with the exposed image before sending the result to the LIME system.d

EXP

Exposure (EXP) is the exposure time as seconds in floats. 1.0 is one second. 1.5 is one and a half second. 0.1 is 1/10 second.

The VOP usually uses long exposures and there's no set upper limit cap. But in my experience, Anything longer than 8 seconds and you start to have to deal with hot pixels.

The exposure time not only determines brightness of the image. But as the VOP uses a video screen for the projection, the smear's smoothness greatly depends on how many subframes can be exposed during the frame's exposure time. The math's gets cruel but simple. If you have a screen that the Pi can drive at 30 Hz. You get 30 sub-frames per second of exposure. A 60 Hz screen doubles that. Pair that up with how far the artwork may have to move during the exposure. So you have to learn to balance the Exposure Time with the pixel distance between sub-frames, and keep an eye out for color channels that can clip faster than your exposure time needs. And also the sensor ships eventual dead or hot pixels that get more visible the longer exposure you do and the aperture set on the lens and the Gain set in the constants and any optical filtration you do between the camera and projection screen.

This means that to get a smooth smear/extrusion, you can find yourself using 2 seconds for some shots, and 120 seconds for others. It's part of the art to optimise these values.

SD

Smear Distance (SD) is a column only found in the SSS Smear Mode. This is a float that sets essentially the shutter angle of the virtual shutter in the VOP. It is scaled to be 0.0 for no smear distance, that results in no smear but a full exposure. 0.5 is the equivalent of a standard 180 degree shutter. And 1.0 is 360 degree shutter. And you can drive this above 1.0 to have the smear go beyond that frames movement to simulate light trails.

It's important here to note that this only sets the frames smear distance. This is not a shutter in the traditional cinematography sense. It doesn't change the brightness of the frame. If you want a brighter frame. Use the EXP input.

Ok. Technically it can change the brightness a bit as a long smear can make it so that the image isn't exposing the same pixels all the time during a frame exposure. But in general. To change brightness you need to use the EXP and Gain inputs.

This is animateable so you can have the distance expand and contract over time.

PH

Phase (PH) is a column only found in the SSS. This sets where on the frame's smear it should be doing the inbetweens for the subframes. It is a float and works like follows. 0.0 means the smear starts at the start of the frame and extends forward in time. 0.5 extends the smear equally forwards and backwards in time and 1.0 only extends backwards.

The use of this input may seem strange but it comes in really handy when doing a logo that has a trailing glow for example. You can do a first pass with the smear trail. Set the PH to 1.0 so that the smear extends backwards in time 5 frames by setting the Smear Distance (SD) to 5.0. And when that first pass is done. You leave the PH value as it is at 1.0 and set the SD value to 0.0 and running the same job as a second pass. This will superimpose the sharp logo in front of the smear as it flows through space.

This is animateable so you can have things moving through the smear over time.

X

With the X you can delete the keyframe. Remember. The VOP has no undo's. So be very sure you want it deleted before you hit that button.

+ ADD SSS KEYFRAME / + ADD MDS KEYFRAME

This button appends keyframes to the list.

Clone this wiki locally