lookup~ allows you to use a table of samples (buffer~ object) to do waveshaping on a signal, in which the Y values of an input signal are used as X values to look up new signal values. Input values of -1 to +1 are mapped to table values between 0 (or the specified sample offset) and the size of the table.
The amplitude of the input signal determines how much of the lookup table gets used. As the amplitude of the input signal increases, more of the table gets used, and consequently more frequencies are generally introduced into the output. Thus, you can change the timbre of a waveshaped signal dynamically by continuously altering the amplitude of the input signal, using a control function or a modulating signal.
(please list things that you believe to be errors or omissions from the existing refpage)