MilkDrop is a hardware-accelerated music visualization plugin for Winamp and Kodi, which was originally developed by Ryan Geiss in 2001. It uses DirectX and intelligent beat detection to render iterated images which blend seamlessly. MilkDrop uses a complex system of interpolation to transition between presets gradually through time, creating a constantly changing visual experience. Presets MilkDrop is an environment for running presets, software which controls MilkDrop, and does not produce visualizations by itself. Presets are saved in file format, typically in a subfolder of the MilkDrop plugin directory. Creating new presets is generally referred to as authoring, or writing, making the person that wrote a preset its author. Presets are distributed on the Internet through Winamp, the Winamp forums, and through the personal webpages of MilkDrop preset authors. A preset's title also doubles as its save name, and usually includes the preset author or authors' pseudonym. MilkDrop presets often have more than one author, which is generally referred to as remixing or editing. A remix or an edit will often include these terms in the preset's title. Creating presets A current file is composed of four major different kinds of scriptable equations. These include and equations, as well as custom shapes and custom waves. Code in the per_frame section is executed once for each frame, modifying variables which affect different parameters that can be passed to other areas of code. Trigonometric functions which modify MilkDrop's internal looping time variable, systems of logic, and interaction with the audio information received from Winamp or other applicable media player's Fast Fourier transform (FFT) can be used to govern how these parameters evolve through time. Code in the section of MilkDrop is not actually re-evaluated at every pixel as the name would suggest, rather the screen is divided into a grid and the code is evaluated at each grid point. The pixels in-between these points interpolate their values from the surrounding four points on the grid. The size of the grid is 32×24 by default, but can be set higher or lower by the user. equations allow the preset author to alter some of MilkDrop's parameters differently in certain areas of the screen based upon x and y values, distance from the center of the screen, and the angle. Custom shapes and custom waves each have variables which allow the author to change the shape, size, color, and location on screen, among other things.