Date:2024-10-25
Lissajous Figures/ Exploring Patterns Born of Waves and Vibrations
For anyone captivated by waveforms or vibrations, the term “Lissajous Figures” might already sound familiar. These beautiful, interwoven patterns are formed by two simple waves and can be seen in scientific experiments, art installations, and beyond.
This article delves into the world of Lissajous Figures, exploring their origins, how they’re generated, and their artistic and practical applications.
Sample idea
Index
- What is a Lissajous Figure?
- How to Generate Lissajous Figures
2.1 Generating with Processing: Code and Demonstration - Applications of Lissajous Figures
3.1 Oscilloscope Music
3.2 Vibration Analysis
3.3 Art and Design - The Beauty and Potential of Lissajous Figures
- Conclusion
1. What is a Lissajous Figure?
A Lissajous figure appears when two simple sine waves of different frequencies intersect perpendicularly on the X- and Y-axes. Named after the French physicist Jules Antoine Lissajous, these figures showcase intricate forms influenced by just two parameters: the frequency ratio and phase difference of the intersecting waves.
The shape of a Lissajous figure is defined by:
- Frequency Ratio: Variations in the frequency ratio between the X- and Y-axis waves change the figure’s overall shape.
- Phase Difference: Adjusting the phase difference between the two waves affects the symmetry and complexity of the pattern.
In mathematical terms, the X-axis waveform is expressed as x(t) = A * sin(a * t) and the Y-axis as y(t) = B * sin(b * t + δ), where A and B are amplitudes, a and b are frequencies, and δ is the phase difference.
2. How to Generate Lissajous Figures
Lissajous figures can be generated using oscilloscopes or programming. On an oscilloscope, they appear when different frequency sine waves are input on the X- and Y-axes. In programming environments like Processing or Python, these figures are produced by simulating waveforms mathematically.
Here’s a simple approach to creating Lissajous figures:
- Set Frequencies: Assign different frequencies to the X- and Y-axes.
- Adjust Phase Difference: Change the phase difference to vary the pattern, from simple ellipses to intricate designs.
- Observe the Pattern: Use an oscilloscope or program to appreciate the evolving beauty of Lissajous figures.
Generating with Processing: Code and Demonstration
float phase = 0;
int pointCount = 100;
float angle;
int freqX = 3;
//float modFreqX = 1;
int freqY = 2;
//float modFreqY = 1;
float phaX = 0;
float phaY = 45;
float x,y;
float factorX, factorY;
int margin = 200;
void setup(){
size(800,800, P2D);
background(0);
windowMove(100,0);
smooth();
factorX = width/2-margin;
factorY = height/2-margin;
}
void draw(){
background(0);
//fill(0,50);
//noStroke();
//rect(0,0,width,height);
translate(width/2, height/2);
noFill();
stroke(255);
strokeWeight(1);
beginShape();
for(int i=0; i<=pointCount; i++){
angle = map(i, 0,pointCount, 0,TWO_PI);
x = sin(freqX * angle + radians(phaX));
//float carrierX = sin(angle * modFreqX);
//x = x*carrierX;
y = sin(freqY * angle + radians(phaY)+frameCount*0.01);
//float carrierY = cos(angle * modFreqY);
//y = y*carrierY;
x = x * factorX;
y = y * factorY;
vertex(x, y);
}
endShape();
}
With Processing, you can create interactive Lissajous figures by adjusting frequency (freqX and freqY) and phase (phaX and phaY) values. For example, by gradually shifting the Y-axis phase with "frameCount", you can produce animated Lissajous patterns.
Here's how the original formula translates into Processing code:
x = sin(freqX * angle + radians(phaX));
y = sin(freqY * angle + radians(phaY));
The final amplitude is scaled by factorX and factorY for each axis, enhancing the visual effect.
3. Applications of Lissajous Figures
Lissajous figures are widely used in science, engineering, music, and visual arts. Here are a few notable applications:
3.1 Oscilloscope Music
Lissajous figures can visually represent music waveforms. In electronic music, adjusting frequency and phase can synchronize the music with the visual pattern, creating a dynamic, sensory experience.
3.2 Vibration Analysis
In engineering, Lissajous figures help analyze vibrations. Observing different vibration modes through these figures can reveal equipment malfunctions or irregularities.
3.3 Art and Design
Known for their geometric beauty, Lissajous figures have found a place in art and design. They’re especially popular in digital art, where they create captivating, animated visuals that merge scientific precision with aesthetic appeal.
4. The Beauty and Potential of Lissajous Figures
Lissajous figures are mesmerizing in their simplicity. By combining different frequencies and phases, one can create infinite variations, each with unique forms and symmetries. Beyond their use in visualizing sound and vibration, they inspire interactive art and installations, bridging the worlds of science and creativity.
float phase = 0;
int pointCount = 100;
float angle;
int freqX = 1;
//float modFreqX = 1;
int freqY = 1;
//float modFreqY = 1;
float phaX = 0;
float phaY = 0;
float x,y;
float factorX, factorY;
int margin = 100;
void setup(){
size(800,800, P2D);
background(0);
windowMove(100,0);
smooth();
factorX = width/32;
factorY = height/32;
}
void draw(){
background(0);
//fill(0,50);
//noStroke();
//rect(0,0,width,height);
noFill();
stroke(255);
strokeWeight(1);
for(int j=0; j<7; j++){
for(int k=0; k<7; k++){
beginShape();
for(int i=0; i<=pointCount; i++){
angle = map(i, 0,pointCount, 0,TWO_PI);
x = sin((freqX+j) * angle + radians(phaX));
//float carrierX = sin(angle * modFreqX);
//x = x*carrierX;
y = sin((freqY+k) * angle + radians(phaY+k*15)+frameCount*0.01);
//float carrierY = cos(angle * modFreqY);
//y = y*carrierY;
x = x * factorX+margin*k+width/8;
y = y * factorY+margin*j+height/8;
vertex(x, y);
}
endShape();
}
}
}
Conclusion
Lissajous figures are a unique blend of science and art, transforming simple sine waves into complex geometric patterns. By experimenting with frequency and phase, we can explore both the physics of waveforms and the limitless possibilities of creative expression.
If you’ve never tried generating Lissajous figures, consider experimenting with an oscilloscope or a programming tool like Processing. You might just uncover a new passion in this fascinating visual world!
Recommended Tools and Resources
- Processing: Ideal for beginners in visual programming, this open-source software is excellent for creating Lissajous figures.
- Python + Matplotlib: For those with programming experience, Python offers a powerful way to generate Lissajous figures.
Recommended Book
Generative Design: Visualize, Program, and Create with Processing
-Harmut Bohnacker, Benedikt Groß, Julia Laub
This book includes methods for creating Lissajous figures, along with various visual projects using Processing. It’s a great resource for exploring visual programming.
Generative Design: Visualize, Program, and Create with Processing
(Harmut Bohnacker, Benedikt Groß, Julia Laub)
Publication date/ August 22, 2012
Print length/472 pages
Publisher/Princeton Architectural Press
Language/English
BGD_SOUNDS (barbe_generative_diary SOUNDS)
barbe_generative_diary SOUNDS will start sharing and selling a variety of field recordings collected for use in my artwork “Sound Visualization” experiments. All sounds are royalty-free.