EUROPYTHON 2020
The Joy of Creating Art with Code.
Presented by Neeraj Pandey
@NEERAJP99
The Joy of Creating Art with Code. Presented by Neeraj Pandey @ - - PowerPoint PPT Presentation
EUROPYTHON 2020 The Joy of Creating Art with Code. Presented by Neeraj Pandey @ NEERAJP 99 N E E R A J P A N D E Y @ NEERAJP 99 ASHOKA UNIVERSITY S o p h o m o r e s t u d e n t a t A s h o k a U n i v e
EUROPYTHON 2020
Presented by Neeraj Pandey
@NEERAJP99Software Development, Generative Art, Distributed Computing and Quantitative Finance.
POINTS FOR DISCUSSION
Generative Art - Principles and Elements History behind Generative Art Intro to Processing.py Geometry, Algorithms and Randomness Examples using Processing.py
@NEERAJP99AL GO RIT HM S, M ATHE M ATIC S , G E N E TIC SE QUENCES
@NEERAJP99PRINCIPLES AND ELEMENTS
Substrate, Jared Tarbell
Elements: color, form, line, shape, space, the randomness and the texture. Principles: rhythm, contrast, harmony, balance, movement, proportion
Created using Python mode for Processing
Created using Python mode for Processing
Hommage à Paul Klee - Frieder Nake, 1965
One of the earliest and best-known pieces of generative art. By Georg Nees, 1968
Processing P5.js Processing.py Processing for Pi Processing for Android
Generates random floating point numbers .
Generates random floating point numbers .
Without processing, use random module in Python. (https://docs.python.org/3/library/random.html)
B
(0, 0)
DRAWING A POINT
We consider a 2-D cartesian plane, and each point as a vector.
A
(X, Y)
C RE AT I NG A P O I NT AN D L I NE
@NEERAJP99Curve Vertex: It specifies the vertex coordinates for curves. Bezier Curves: It is a versatile mathematical curve in vector graphics.
@NEERAJP99C REA TI NG B EZI ER C U R VES
@NEERAJP99C REA TI NG B EZI ER C U R VES
@NEERAJP99US I N G CU R VEVE RT EX( )
@NEERAJP99E XAM PL E U S I NG CU R VEVER T EX( )
CR EAT IN G B A S I C S H APE S
@NEERAJP99LI NEA R I N TE R PO L AT IO N
@NEERAJP99This function interpolates within the range [start..end] based on the amount parameter, where amount parameter is typically within a [0..1] range.
E XAM PL E U S I NG L ER PC OL O R ()
@NEERAJP99P E RLI N NO I SE / SI MP L EX N O IS E
@NEERAJP99P ER LI N N OI S E / S IM P L EX N O I SE
@NEERAJP99Without processing, use noise module in Python. (https://pypi.org/project/noise/)
AD D N O I SE T O T H E P I XEL C O L O R S
@NEERAJP99AD D RAN D O M T O T H E P I XEL C O L O R S
USI N G N O I SE A ND T RI G O N OM ET R Y
USI N G N O I SE AND T R IG O N O MET R Y
@NEERAJP99USI N G N O I SE A ND T R IG N O ME TR Y
@NEERAJP99USI N G N O I SE A ND T RI G O N OM ET R Y
Perlin Noise Field
@NEERAJP99Using Perlin Noise Field and Perlin Noise generated random noise points(grain like texture).
@NEERAJP99P ERL IN NO I S E F I EL D
P ERL IN NO I S E F I EL D
@NEERAJP99PER L I N N O IS E F IE L D
@NEERAJP99P ERL IN NO I S E F I EL D
Using Geometrical patterns, fractals and chaos theory to generate aesthetic art pieces
An equilateral triangle, subdivided recursively into smaller equilateral triangles with one recursive call each time.
@NEERAJP99Source: Wikipedia
@NEERAJP99A geometrical figure where each part has the same statistical characters.
Source: Wikimedia
Deterministic, unpredictable A small change in the initial state can result in very large difference in the final outcome
@NEERAJP99Lorenz system
De Jong Attractor
https://examples.pyviz.org/attractors/attractors.html
Creating oil, water color paint effeccts on
C RE A T E P O L YG O N, D I VI D E S I D ES
@NEERAJP99F U N C TI O NS TO D IV I D E T H E S ID E U SIN G RA N D O M G A U SSI A N
@NEERAJP99A DD VE RT E X T O T HE N E W S ID E S
@NEERAJP99AD D A C US T OM R AN DO M G AU SS IA N M ET H OD
@NEERAJP99Inspiration: https://tylerxhobbs.com/essays/2017/a-generative-approach-to-simulating- watercolor-paints
S I MP LE I M PL EM EN TA TI ON O F S O R TI N G PI X E L S
@NEERAJP99S I MP LE I M PL EM EN TA TI ON O F S O R TI N G PI X E L S
neerajp99
Code: https://bit.ly/2WDxqsC