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 r s i t y . Software Development, Generative Art, Distributed Computing and Quantitative Finance. @ NEERAJP 99
POINTS FOR DISCUSSION Generative Art - Principles and Elements History behind Generative Art Intro to Processing.py Geometry, Algorithms and Randomness Examples using Processing.py @ NEERAJP 99
Art created through the use of an autonomous system. AL GO RIT HM S, M ATHE M ATIC S , G E N E TIC SE QUENCES @ NEERAJP 99
PRINCIPLES AND ELEMENTS Elements : color, form, line, shape, space, the randomness and the texture. Principles: rhythm, contrast, harmony, balance, movement, proportion Substrate, Jared Tarbell
Created using Python mode for Processing @ NEERAJP 99
Created using Python mode for Processing @ NEERAJP 99
HISTORY OF GENERATIVE ART Hommage à Paul Klee - Frieder Nake, 1965
One of the earliest and best-known pieces of generative art. By Georg Nees, 1968
PROCESSING FOUNDATION Processing P5.js Processing.py Processing for Pi Processing for Android
PROCESSING.PY @ NEERAJP 99
OVERVIEW @ NEERAJP 99
@ NEERAJP 99
USING MATHEMATICS AND ALGORITHMS @ NEERAJP 99
RANDOM Generates random floating point numbers . @ NEERAJP 99
RANDOM Generates random floating point numbers . Without processing, use random module in Python. (https://docs.python.org/3/library/random.html) @ NEERAJP 99
ARTIST'S CANVAS (0, 0) DRAWING A POINT We consider a 2-D cartesian plane, and each point as a vector. (X, Y) B A @ NEERAJP 99
C RE AT I NG A P O I NT AN D L I NE @ NEERAJP 99
Using straight lines @ NEERAJP 99
Using vector operations @ NEERAJP 99
CURVE VERTEX & BEZIER CURVES Curve Vertex: It specifies the vertex coordinates for curves. Bezier Curves: It is a versatile mathematical curve in vector graphics. @ NEERAJP 99
C REA TI NG B EZI ER C U R VES @ NEERAJP 99
USING BEZIER CURVES TO CREATE WAVES @ NEERAJP 99
C REA TI NG B EZI ER C U R VES @ NEERAJP 99
USING BEZIER CURVES TO CREATE WAVES @ NEERAJP 99
US I N G CU R VEVE RT EX( ) @ NEERAJP 99
E XAM PL E U S I NG CU R VEVER T EX( ) @ NEERAJP 99
@ NEERAJP 99
@ NEERAJP 99
CR EAT IN G B A S I C S H APE S @ NEERAJP 99
Piet Mondrian Eperiments @ NEERAJP 99
USING RECTANGLE SHAPE @ NEERAJP 99
@ NEERAJP 99
Using Shapes @ NEERAJP 99
LI NEA R I N TE R PO L AT IO N This function interpolates within the range [start..end] based on the amount parameter, where amount parameter is typically within a [0..1] range. @ NEERAJP 99
E XAM PL E U S I NG L ER PC OL O R () @ NEERAJP 99
@ NEERAJP 99
P E RLI N NO I SE / SI MP L EX N O IS E @ NEERAJP 99
P ER LI N N OI S E / S IM P L EX N O I SE Without processing, use noise module in Python. (https://pypi.org/project/noise/) @ NEERAJP 99
AD D N O I SE T O T H E P I XEL C O L O R S @ NEERAJP 99
@ NEERAJP 99
AD D RAN D O M T O T H E P I XEL C O L O R S @ NEERAJP 99
USI N G N O I SE A ND T RI G O N OM ET R Y @ NEERAJP 99
USI N G N O I SE AND T R IG O N O MET R Y @ NEERAJP 99
USI N G N O I SE A ND T R IG N O ME TR Y @ NEERAJP 99
USI N G N O I SE A ND T RI G O N OM ET R Y @ NEERAJP 99
Perlin Noise Field @ NEERAJP 99
PERLIN NOISE Using Perlin Noise Field and Perlin Noise generated random noise points(grain like texture). @ NEERAJP 99
P ERL IN NO I S E F I EL D @ NEERAJP 99
P ERL IN NO I S E F I EL D @ NEERAJP 99
PER L I N N O IS E F IE L D @ NEERAJP 99
P ERL IN NO I S E F I EL D @ NEERAJP 99
GEOMETRY FRACTALS CHAOS Using Geometrical patterns, fractals and chaos theory to generate aesthetic art pieces @ NEERAJP 99
SIERPINSKI TRIANGLE An equilateral triangle, subdivided recursively into smaller equilateral triangles with one recursive call each time. @ NEERAJP 99
Modified Sierpinski Triangle @ NEERAJP 99
Fractal Flower @ NEERAJP 99
Mandelbrot Set A geometrical figure where each part has the same statistical characters. Source: Wikipedia @ NEERAJP 99
Julia Set @ NEERAJP 99
The Logistic Map Source: Wikimedia
CHAOS THEORY Deterministic, unpredictable A small change in the initial state can result in very large difference in the final outcome @ NEERAJP 99
Attractors Lorenz system De Jong Attractor @ NEERAJP 99 https://examples.pyviz.org/attractors/attractors.html
SIMULATING PAINT Creating oil, water color paint effeccts on our 2D/3D canvas. @ NEERAJP 99
@ NEERAJP 99
C RE A T E P O L YG O N, D I VI D E S I D ES @ NEERAJP 99
F 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 @ NEERAJP 99
A DD VE RT E X T O T HE N E W S ID E S @ NEERAJP 99
AD D A C US T OM R AN DO M G AU SS IA N M ET H OD @ NEERAJP 99
@ NEERAJP 99
Inspiration : https://tylerxhobbs.com/essays/2017/a-generative-approach-to-simulating- @ NEERAJP 99 watercolor-paints
Pixel Sorting Algorithms v1.0 @ NEERAJP 99
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 @ NEERAJP 99
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 @ NEERAJP 99
Pixel Sorting Algorithms v2.0 @ NEERAJP 99
THANK YOU neerajp99 Code: https://bit.ly/2WDxqsC
Recommend
More recommend