The Joy of Creating Art with Code. Presented by Neeraj Pandey @ - - PowerPoint PPT Presentation

the joy of creating art with code
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

EUROPYTHON 2020

The Joy of Creating Art with Code.

Presented by Neeraj Pandey

@NEERAJP99
slide-2
SLIDE 2 N E E R A J P A N D E Y @NEERAJP99 ASHOKA UNIVERSITY S
  • p
h
  • m
  • r
e s t u d e n t a t A s h
  • k
a U n i v e r s i t y . @NEERAJP99

Software Development, Generative Art, Distributed Computing and Quantitative Finance.

slide-3
SLIDE 3

POINTS FOR DISCUSSION

Generative Art - Principles and Elements History behind Generative Art Intro to Processing.py Geometry, Algorithms and Randomness Examples using Processing.py

@NEERAJP99
slide-4
SLIDE 4

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

@NEERAJP99
slide-5
SLIDE 5

PRINCIPLES AND ELEMENTS

Substrate, Jared Tarbell

Elements: color, form, line, shape, space, the randomness and the texture. Principles: rhythm, contrast, harmony, balance, movement, proportion

slide-6
SLIDE 6 @NEERAJP99

Created using Python mode for Processing

slide-7
SLIDE 7 @NEERAJP99

Created using Python mode for Processing

slide-8
SLIDE 8

HISTORY OF GENERATIVE ART

Hommage à Paul Klee - Frieder Nake, 1965

slide-9
SLIDE 9

One of the earliest and best-known pieces of generative art. By Georg Nees, 1968

slide-10
SLIDE 10

PROCESSING FOUNDATION

Processing P5.js Processing.py Processing for Pi Processing for Android

slide-11
SLIDE 11

PROCESSING.PY

@NEERAJP99
slide-12
SLIDE 12 @NEERAJP99

OVERVIEW

slide-13
SLIDE 13 @NEERAJP99
slide-14
SLIDE 14

USING MATHEMATICS AND ALGORITHMS

@NEERAJP99
slide-15
SLIDE 15 @NEERAJP99

RANDOM

Generates random floating point numbers .

slide-16
SLIDE 16

RANDOM

@NEERAJP99

Generates random floating point numbers .

Without processing, use random module in Python. (https://docs.python.org/3/library/random.html)

slide-17
SLIDE 17

B

(0, 0)

DRAWING A POINT

We consider a 2-D cartesian plane, and each point as a vector.

A

(X, Y)

ARTIST'S CANVAS

@NEERAJP99
slide-18
SLIDE 18

C RE AT I NG A P O I NT AN D L I NE

@NEERAJP99
slide-19
SLIDE 19

Using straight lines

@NEERAJP99
slide-20
SLIDE 20

Using vector operations

@NEERAJP99
slide-21
SLIDE 21

CURVE VERTEX & BEZIER CURVES

Curve Vertex: It specifies the vertex coordinates for curves. Bezier Curves: It is a versatile mathematical curve in vector graphics.

@NEERAJP99
slide-22
SLIDE 22

C REA TI NG B EZI ER C U R VES

@NEERAJP99
slide-23
SLIDE 23

USING BEZIER CURVES TO CREATE WAVES

@NEERAJP99
slide-24
SLIDE 24

C REA TI NG B EZI ER C U R VES

@NEERAJP99
slide-25
SLIDE 25

USING BEZIER CURVES TO CREATE WAVES

@NEERAJP99
slide-26
SLIDE 26

US I N G CU R VEVE RT EX( )

@NEERAJP99
slide-27
SLIDE 27 @NEERAJP99

E XAM PL E U S I NG CU R VEVER T EX( )

slide-28
SLIDE 28 @NEERAJP99
slide-29
SLIDE 29 @NEERAJP99
slide-30
SLIDE 30

CR EAT IN G B A S I C S H APE S

@NEERAJP99
slide-31
SLIDE 31

Piet Mondrian Eperiments

@NEERAJP99
slide-32
SLIDE 32

USING RECTANGLE SHAPE

@NEERAJP99
slide-33
SLIDE 33 @NEERAJP99
slide-34
SLIDE 34

Using Shapes

@NEERAJP99
slide-35
SLIDE 35

LI NEA R I N TE R PO L AT IO N

@NEERAJP99

This function interpolates within the range [start..end] based on the amount parameter, where amount parameter is typically within a [0..1] range.

slide-36
SLIDE 36

E XAM PL E U S I NG L ER PC OL O R ()

@NEERAJP99
slide-37
SLIDE 37 @NEERAJP99
slide-38
SLIDE 38

P E RLI N NO I SE / SI MP L EX N O IS E

@NEERAJP99
slide-39
SLIDE 39

P ER LI N N OI S E / S IM P L EX N O I SE

@NEERAJP99

Without processing, use noise module in Python. (https://pypi.org/project/noise/)

slide-40
SLIDE 40

AD D N O I SE T O T H E P I XEL C O L O R S

@NEERAJP99
slide-41
SLIDE 41 @NEERAJP99
slide-42
SLIDE 42 @NEERAJP99

AD D RAN D O M T O T H E P I XEL C O L O R S

slide-43
SLIDE 43 @NEERAJP99

USI N G N O I SE A ND T RI G O N OM ET R Y

slide-44
SLIDE 44

USI N G N O I SE AND T R IG O N O MET R Y

@NEERAJP99
slide-45
SLIDE 45

USI N G N O I SE A ND T R IG N O ME TR Y

@NEERAJP99
slide-46
SLIDE 46 @NEERAJP99

USI N G N O I SE A ND T RI G O N OM ET R Y

slide-47
SLIDE 47

Perlin Noise Field

@NEERAJP99
slide-48
SLIDE 48

PERLIN NOISE

Using Perlin Noise Field and Perlin Noise generated random noise points(grain like texture).

@NEERAJP99
slide-49
SLIDE 49 @NEERAJP99

P ERL IN NO I S E F I EL D

slide-50
SLIDE 50

P ERL IN NO I S E F I EL D

@NEERAJP99
slide-51
SLIDE 51

PER L I N N O IS E F IE L D

@NEERAJP99
slide-52
SLIDE 52 @NEERAJP99

P ERL IN NO I S E F I EL D

slide-53
SLIDE 53

GEOMETRY FRACTALS CHAOS

@NEERAJP99

Using Geometrical patterns, fractals and chaos theory to generate aesthetic art pieces

slide-54
SLIDE 54

SIERPINSKI TRIANGLE

An equilateral triangle, subdivided recursively into smaller equilateral triangles with one recursive call each time.

@NEERAJP99
slide-55
SLIDE 55

Modified Sierpinski Triangle

@NEERAJP99
slide-56
SLIDE 56

Fractal Flower

@NEERAJP99
slide-57
SLIDE 57

Mandelbrot Set

Source: Wikipedia

@NEERAJP99

A geometrical figure where each part has the same statistical characters.

slide-58
SLIDE 58

Julia Set

@NEERAJP99
slide-59
SLIDE 59

The Logistic Map

Source: Wikimedia

slide-60
SLIDE 60

CHAOS THEORY

Deterministic, unpredictable A small change in the initial state can result in very large difference in the final outcome

@NEERAJP99
slide-61
SLIDE 61

Attractors

@NEERAJP99

Lorenz system

De Jong Attractor

https://examples.pyviz.org/attractors/attractors.html

slide-62
SLIDE 62

SIMULATING PAINT

Creating oil, water color paint effeccts on

  • ur 2D/3D canvas.
@NEERAJP99
slide-63
SLIDE 63 @NEERAJP99
slide-64
SLIDE 64

C RE A T E P O L YG O N, D I VI D E S I D ES

@NEERAJP99
slide-65
SLIDE 65

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

@NEERAJP99
slide-66
SLIDE 66

A DD VE RT E X T O T HE N E W S ID E S

@NEERAJP99
slide-67
SLIDE 67

AD D A C US T OM R AN DO M G AU SS IA N M ET H OD

@NEERAJP99
slide-68
SLIDE 68 @NEERAJP99
slide-69
SLIDE 69 @NEERAJP99

Inspiration: https://tylerxhobbs.com/essays/2017/a-generative-approach-to-simulating- watercolor-paints

slide-70
SLIDE 70

Pixel Sorting Algorithms v1.0

@NEERAJP99
slide-71
SLIDE 71

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

@NEERAJP99
slide-72
SLIDE 72 @NEERAJP99

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

slide-73
SLIDE 73
slide-74
SLIDE 74

Pixel Sorting Algorithms v2.0

@NEERAJP99
slide-75
SLIDE 75

neerajp99

THANK YOU

Code: https://bit.ly/2WDxqsC