S3D and WibbleWobble
Following numerous requests from gamers, we've decided to take a
closer look at a technology with the rather unusual name
WibbleWobble.
We had previously come across its GitHub page, but the documentation was
incredibly difficult to follow.
Frankly, we had no desire to dig through that mess.
It's unlikely that an average user could reproduce it easily.
Most people probably wouldn't even bother reading it.
This time we'll force ourselves to work through it and test it properly.
If it proves stable, we'll try integrating our own hardware and write a clear,
practical guide, so anyone interested can enjoy a new gaming
experience powered by WibbleWobble.
WibbleWobble Core
What Is It and How Does It Work?
The entire concept can be summarized in one sentence: WibbleWobble turns
a regular flat 3D game into a stereoscopic "window into the world."
By tracking your head movements, you can look around a 3D scene even
if the game itself has no stereo support. Let's break down how it works.
Reprojection Instead of Stereo Rendering
The traditional way to create stereoscopic 3D is to render the entire
scene twice: once for the left eye and once for the right eye,
using two slightly offset virtual cameras.
This is computationally expensive and requires built-in support from the game engine.
Today almost nobody implements this anymore.
WibbleWobble takes a completely different approach.
The game renders a single normal view, and WibbleWobble processes
that frame using a highly optimized shader, adjusting it according to
the current head position. Instead of rendering the world separately for each eye,
it simply reprojects the existing image to match the viewing angle.
The result is excellent performance and compatibility with games that
know absolutely nothing about stereoscopic 3D.
Head Tracking as a "Window into the World"
Using OpenTrack or TrackIR, the application continuously
tracks your head position and shifts the projection so the
monitor behaves like a virtual window into the game world.
This creates a natural motion-parallax effect, often referred to as "fish tank VR."
As you move your head, the scene shifts accordingly, making it appear
as if you're looking through a real window into the virtual world.
The effect is similar to the pseudo-3D photos once popular on Facebook.
Frame-Sequential Stereo Output
The application receives frames from the game at whatever
rate they become available. A shader converts each frame into
a side-by-side stereo image running at 60 Hz.
The renderer then expands it into a 120 Hz frame-sequential
output while simultaneously synchronizing active shutter glasses.
This is why compatibility with stereo emitters becomes important:
NVIDIA 3D Vision, Open3DOLED, DLP projectors, 3D Ready displays,
and even DIY Arduino/VESA IR emitters.
Reducing Motion Blur and Crosstalk
Motion blur is the effect where rapidly moving objects
appear blurred instead of perfectly sharp.
Imagine quickly waving your hand in front of your eyes.
Instead of seeing clearly defined fingers, you see a blurred trail.
The same thing happens in computer graphics whenever objects move rapidly.
Motion blur hides fine image details and noticeably reduces
image quality in stereoscopic 3D.
To reduce this effect, WibbleWobble includes a built-in frame resampler.
The software analyzes object motion and generates additional intermediate frames.
At high output refresh rates, image sharpness improves significantly.
Crosstalk occurs when part of the image intended for
one eye leaks into the other eye. The viewer sees double edges
or faint ghost images around objects, reducing both
image quality and perceived depth.
To combat this, WibbleWobble supports both Black Frame
Insertion and the Blur Busters CRT beam simulator.
For maximum crosstalk reduction, it uses an advanced operating
mode: the game itself runs at 60 Hz, the shutter glasses
receive synchronization pulses at 120 Hz,
while the monitor refreshes at 240 Hz with repeated frames.
Who Uses This Technology?
Primarily enthusiasts of stereoscopic 3D gaming and owners of
hardware from the NVIDIA 3D Vision era, officially discontinued by NVIDIA in 2019.
The technology makes it possible to play modern games that have no built-in stereoscopic support.
Overall, it offers a very attractive price-to-performance ratio,
providing a convincing 3D experience without requiring expensive specialized hardware.
Limitations of the Technology
Despite its strengths, the method has several important
limitations that should be understood. These limitations are
not implementation flaws—they stem directly from the underlying principle.
The second eye's view is not rendered from the actual 3D scene.
Instead, it is reconstructed from a single rendered frame
together with its depth map. Since the original image contains
no information about what is hidden behind foreground objects,
those missing pixels simply do not exist.
Holes Around Object Boundaries (Disocclusion)
This is the most significant artifact of the technique.
When the viewpoint shifts for the second eye or due to head movement,
portions of the background that were originally hidden behind
foreground objects should become visible. Unfortunately,
those pixels were never rendered.
The software therefore has nothing to fill these gaps with.
It either stretches neighboring pixels, producing rubber-like
smearing along object edges, or attempts to generate plausible—but
usually incorrect—content. The larger the viewpoint shift, the
larger these missing regions become. This is not a software bug,
it is an unavoidable consequence of reconstructing multiple
viewpoints from a single image.
Head Movement Makes the Artifacts More Visible
In conventional stereoscopic rendering, the distance between
viewpoints is fixed and approximately equal to the distance between your eyes.
With the "window into the world" approach, however,
your head may move by many centimeters in any direction.
This creates viewpoint shifts far larger than natural eye
separation, making reconstruction artifacts much more noticeable.
The result is a compromise: Remain still, and artifacts are
minimal—but so is the 3D effect.
Move your head aggressively, and the illusion becomes
stronger—but blurred edges and reconstruction errors
become much more obvious. Interestingly, the name
"WibbleWobble" describes exactly this behavior.
Everything Depends on the Game's Depth Map
The software requires accurate depth information for every pixel.
Games do not always provide this information correctly.
Transparent materials such as water, glass, smoke, fire, and foliage often lack
proper depth information or are omitted entirely from the depth buffer.
As a result, objects appear at incorrect distances. Water attaches to the
wrong geometry, smoke becomes doubled, particles float incorrectly, and many visual effects break.
Furthermore, not every game exposes a compatible depth buffer.
Some invert it, while others protect it from external access entirely.
Reflections and Highlights Break the Most
Mirrors, water, wet asphalt, and polished metal store only
the depth of the reflecting surface—not the reflected image.
When the viewpoint changes, reflections move incorrectly.
Likewise, baked highlights painted onto surfaces cannot behave like real reflections.
Ironically, the most visually impressive glossy materials often look
the least convincing in reconstructed stereo.
User Interface, Crosshairs, and HUD
2D overlays such as health bars, menus, and aiming reticles are rendered at screen depth.
After reprojection they often appear at incorrect stereo depths.
Sometimes the interface sticks to the monitor surface, while at other times it floats awkwardly in front of the scene.
Crosshairs are particularly troublesome and usually require manual depth adjustment.
One Image Shared by Both Eyes
Both eyes ultimately see the same original frame, only shifted differently.
True stereoscopic rendering produces separate deep maps, reflections, shadows,
refractions, and lighting for each eye. That information simply does not exist here.
As a result, objects often resemble flat cardboard cutouts
arranged at different depths instead of fully volumetric objects.
English discussions commonly refer to this as the "cardboard" effect.
Per-Game Calibration
Field of view, depth range, and stereo convergence usually
have to be adjusted manually for every game.
Incorrect settings may cause eye strain, incorrect world scale,
inverted depth, or other visual problems.
This is definitely a "configure it yourself" solution
rather than a plug-and-play experience.
Latency and Uneven Frame Timing
Games do not deliver frames at perfectly regular intervals.
The software must first convert this irregular stream into a stable output rate.
Generating intermediate frames introduces additional
artifacts around fast-moving objects while also increasing input latency.
For head tracking, any additional delay is immediately perceived
as the virtual world "floating" behind your movements.
Residual Crosstalk and Display Requirements
Software techniques such as Black Frame Insertion and the 60/120/240 Hz
operating mode significantly reduce ghosting but cannot eliminate it completely.
Crosstalk is ultimately determined by the physical characteristics of both the
display panel and the shutter glasses: pixel response time, lens switching speed,
lens polarisation contrast, and the panel's scanout behavior.
Moreover, the most aggressive operating mode requires a fast
240 Hz display with very short pixel persistence-hardware
that many users simply do not own.
Effectiveness Assessment
The project employs various techniques
to compensate for these limitations.
However, in my opinion, the improvements are relatively modest.
The table below shows the approximate effectiveness of the implemented techniques.
What would actually produce the biggest improvements?
Per-scanline image correction to compensate for
panel scanout latency would reduce crosstalk dramatically.
Accurate measurement of OLED response timing for each display model would
allow precise adjustment of shutter opening and closing.
Ultra-precise frame synchronization without dropped or repeated frames.
Synchronization jitter suppression. Any jitter above a hundred microseconds
is immediately noticeable in active stereoscopic 3D.
Temporal pre-compensation, provided the response characteristics of the display panel are known.
These are exactly the techniques employed by manufacturers of professional VR headsets.
| CRTSim |
+6% |
| Standard BFI |
+10% |
| Display Scanout Compensation |
+50% |
| Precise Glasses Synchronization |
+60% |
| High Refresh Rate (240.. 480 Hz) |
+100% |
Conclusion
Unlike NVIDIA 3D Vision, WibbleWobble does not reproduce true
stereo images, it synthesizes them from a single flat frame.
Consequently, missing geometry, incorrect reflections,
and unstable object edges are permanent characteristics
of the technique rather than temporary implementation flaws.
In return, the technology provides something conventional
3D players cannot: real-time head tracking and a
convincing "window into the world" experience inside existing games.
Understanding these limitations in advance helps set realistic expectations.
To be continued, check back later....