Skip to content

My attempt to learn Clojure and Processing at the same time.

Notifications You must be signed in to change notification settings

john2x/generative-design-clojure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Generative Design in Clojure

My attempt to learn Clojure (and Processing!) by going through the code of Generative Design and porting them to Clojure with Quil.

I'll try to keep it as similar to the original as possible, for easy reference (and progress :P). So if you're looking for mind-blowing Clojure code, you might want to look somewhere else.

When I've finished porting all of them, or when I'm confident enough, I'll probably go through each one again and write more elegant versions of each. (But that will be a long ways off.)

Dependencies

Install Leiningen 2.

generativedesign

Download and unzip the generativedesign library and then perform the following:

$ cd generative-design-clojure
$ mkdir repo
$ mvn deploy:deploy-file -DgroupId=local -DartifactId=generativedesign \
    -Dversion=1.0.3 -Dpackaging=jar \
	-Dfile=unzipped/generativedesign/library/generativedesign.jar \
    -Durl=file:repo
$ lein deps
...
Uploading: file:repo/local/generativedesign/1.0.3/generativedesign-1.0.3.jar
Uploaded: file:repo/local/generativedesign/1.0.3/generativedesign-1.0.3.jar (29 KB at 3515.5 KB/sec)
Uploading: file:repo/local/generativedesign/1.0.3/generativedesign-1.0.3.pom
Uploaded: file:repo/local/generativedesign/1.0.3/generativedesign-1.0.3.pom (394 B at 128.3 KB/sec)
Downloading: file:repo/local/generativedesign/maven-metadata.xml
Downloaded: file:repo/local/generativedesign/maven-metadata.xml (301 B at 147.0 KB/sec)
Uploading: file:repo/local/generativedesign/maven-metadata.xml
Uploaded: file:repo/local/generativedesign/maven-metadata.xml (301 B at 147.0 KB/sec)
...

Usage

$ lein run `part` `chapter`
# e.g.
# to run the sketch in generative_design_clojure/principles/P_1_0_01
$ lein run principles P_1_0_01

See Quil's page for more info.

Progress

P./// Basic Principles

P.1 Colour

  1. P_1_0_01
  2. P_1_1_1_01
  3. P_1_1_2_01
  4. P_1_2_1_01
  5. P_1_2_2_01
  6. P_1_2_3_01
  7. P_1_2_3_02
  8. P_1_2_3_03
  9. P_1_2_3_04

P.2 Form

  1. P_2_0_01
  2. P_2_0_02
  3. P_2_0_03
  4. P_2_1_1_01
  5. P_2_1_1_02
  6. P_2_1_1_03
  7. P_2_1_1_04
  8. P_2_1_2_01
  9. P_2_1_2_02
  10. P_2_1_2_03
  11. P_2_1_2_04
  12. P_2_1_3_01
  13. P_2_1_3_02
  14. P_2_1_3_03
  15. P_2_1_3_04
  16. P_2_1_3_05
  17. P_2_2_1_01
  18. P_2_2_1_02

License

The same license as the ones found in Generative Design's code. See below.

Generative Gestaltung, ISBN: 978-3-87439-759-9
First Edition, Hermann Schmidt, Mainz, 2009
Hartmut Bohnacker, Benedikt Gross, Julia Laub, Claudius Lazzeroni
Copyright 2009 Hartmut Bohnacker, Benedikt Gross, Julia Laub, Claudius Lazzeroni

http://www.generative-gestaltung.de

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

My attempt to learn Clojure and Processing at the same time.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages