Demo effects are computer-based real-time visual effects found in demos created by the demoscene.
The main purpose of demo effects in demos is to show off the skills of the programmer. Because of this, demo coders have often attempted to create new effects whose technical basis cannot be easily figured out by fellow programmers.
Sometimes, particularly in the case of severely limited platforms such as the Commodore 64, a demo effect may make the target machine do things that are supposedly beyond its capabilities. The ability to creatively overcome major technical limitations is greatly appreciated among demosceners.
Modern demos are not as focused on effects as the demos of the 1980s and 1990s. Effects are rarely stand-alone content elements anymore, and their role in programmer showcase has diminished, particularly in PC demos. As for today, PC demosceners are more likely to demonstrate their programming skills with procedural content generation or 3D engine features than with superior visual effects.
There are demos written for many different devices that vary considerably in their graphical features and data processing capabilities. The variability in hardware also reflects in types of effects invented for each platform as well as in the methods used in the implementation.
The demoscene took off on home computers such as the Commodore 64 and the Amiga, which had relatively advanced and very "hackable" custom chips and CPUs. Before the widespread use of advanced computer aided design for integrated circuits, chips were designed by hand and so often had many undocumented or unintended features. A lack of standardisation also meant that hardware design tended to reflect the designers own ideas and creative flair. For this reason, most "old school" demo effects were based on the creative exploitation of the features of particular hardware. A lot of effort was put into the reverse-engineering of the hardware in order to find undocumented possibilities usable for new effects.
The IBM PC compatibles of the 1990s, however, lacked many of the special features typical for the home computers, instead using standard parts. This was compensated for with a greater general-purpose computing power. The possibility of advanced hardware trickery was also limited by the great variability of PC hardware. For these reasons, the PC democoders of the DOS era preferred to focus on pixel-level software rendering algorithms.