C# 3 min read

Recreating a Classic Amiga Demo Effect in Modern C#

The demoscene on the Commodore Amiga pushed hardware to its limits with clever tricks and tight optimisation. In this article, we revisit one of those iconic visual effects and recreate it using modern C#. By combining mathematical principles with today’s frameworks, we can bring retro visuals to life while appreciating the ingenuity of early developers.

Admin
Admin
.NET & IoT Developer
Recreating a Classic Amiga Demo Effect in Modern C#

Introduction to the Amiga Demo Scene

During the late 1980s and early 1990s, the Commodore Amiga became the centre of the demoscene, where programmers, artists and musicians competed to create real-time audiovisual showcases. These demos relied on efficient use of limited CPU power and memory, often producing stunning effects such as plasma animations, sine wave distortions and raster bars. Recreating these effects today offers both a nostalgic journey and a practical way to sharpen graphics programming skills.

Choosing the Effect to Recreate

One of the most recognisable Amiga demo effects is the plasma effect. It features smooth, flowing colour transitions that appear organic and hypnotic. The effect is typically generated using sine wave calculations combined with colour palettes. Its simplicity in concept and visual impact makes it an ideal candidate for reimplementation in modern C#.

Setting Up the C# Environment

To recreate this effect, we can use a simple Windows Forms or WPF application, or even a more modern approach such as using a drawing surface with .NET and System.Drawing. The key requirement is access to pixel-level manipulation. Creating a bitmap buffer and updating pixel values directly allows us to simulate the low-level control that developers had on the Amiga.

Understanding the Mathematics Behind Plasma

The plasma effect relies heavily on trigonometric functions. By combining multiple sine waves across the X and Y axes, we can generate smooth gradients that evolve over time. Each pixel’s colour is calculated based on its position and a time variable, which is incremented for each frame. This creates the illusion of motion without moving any actual objects.

Implementing the Effect in C#

In a typical implementation, a loop iterates over each pixel in a bitmap. For each coordinate, a value is calculated using sine functions. This value is then mapped to a colour, often through a predefined palette. Updating the bitmap continuously and rendering it to the screen produces the animation. Performance can be improved by locking bitmap bits and working directly with memory rather than using high-level drawing methods.

Optimisation Considerations

Although modern hardware is significantly more powerful than the original Amiga, efficiency still matters. Reducing redundant calculations, precomputing sine values and minimising memory allocations can lead to smoother animations. Using techniques such as double buffering also helps eliminate flickering and ensures a more polished visual output.

Enhancing the Classic Effect

Once the basic plasma effect is working, it can be extended in various ways. Introducing dynamic colour palettes, layering multiple plasma fields or combining it with other effects such as scrolling text can replicate the feel of a full demo. Additionally, experimenting with GPU acceleration through libraries or frameworks can modernise the implementation further.

Conclusion

Recreating a classic Amiga demo effect in C# is both a rewarding and educational exercise. It highlights how much can be achieved with simple mathematics and efficient coding. While modern tools offer far greater capabilities, revisiting these techniques provides valuable insight into the creativity and skill of early developers.

Share:

Become a member

Get the latest news right in your inbox. It's free and you can unsubscribe at any time. We hate spam as much as we do, so we never spam!

Read next

Handling Soft Deletes in EF Core

When working with business applications, permanently deleting data is often undesirable. Records may need to be restored, audited or retained for compliance purposes. Soft deletes provide a simple solution by marking records as deleted rather than removing them from the database. In this article, we'll explore how to implement soft deletes in Entity Framework Core using query filters and save interception techniques.

Admin 05-Jun-2026

The Bedroom Coder — retro computers, modern .NET, and late-night experiments.

Navigation

Contact

Want to talk retro tech or modern coding? I'd love to hear your thoughts.

© 2026 The Bedroom Coder. All rights reserved.