{"id":16147421,"url":"https://github.com/edap/udk-2019-pattern-projection","last_synced_at":"2026-01-19T08:03:30.980Z","repository":{"id":145594181,"uuid":"176528926","full_name":"edap/udk-2019-pattern-projection","owner":"edap","description":null,"archived":false,"fork":false,"pushed_at":"2019-06-26T10:24:26.000Z","size":588,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T20:48:54.285Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-19T14:24:08.000Z","updated_at":"2024-11-24T20:39:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"447e3a38-d200-4ca0-adcb-21317e4303b8","html_url":"https://github.com/edap/udk-2019-pattern-projection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edap/udk-2019-pattern-projection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-2019-pattern-projection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-2019-pattern-projection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-2019-pattern-projection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-2019-pattern-projection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edap","download_url":"https://codeload.github.com/edap/udk-2019-pattern-projection/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-2019-pattern-projection/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28563234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T00:25:14.655Z","updated_at":"2026-01-19T08:03:30.953Z","avatar_url":"https://github.com/edap.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Patterns projections\n\n![img](img/horst-bartnig.jpg)\n\nArtwork by [Horst Bartnig](https://de.wikipedia.org/wiki/Horst_Bartnig)\n\nThis course focuses on patterns composition and projection on surfaces using shaders and openFrameworks.\n\n*Requirements:*\n\n- A working installation of openFrameworks \u003e= to 0.10.1.\n- These [ofxAutoReloadedShader](https://github.com/andreasmuller/ofxAutoReloadedShader) and [ofxGLWarper](https://github.com/roymacdonald/ofxGLWarper) in your `addons` folder. \n\n\n##### Table of Contents\n\n[Intro to the course, 17/04](#intro-to-the-course)\n\n[Functions and colors, 24/04](#functions-and-colors)\n\n[Shapes and signed distance function, 08/05](#shapes-and-signed-distance-function)\n\n[Matrices and Patterns, 22/05](#matrices-and-patterns)\n\n[Audioreactive, 5/06](#audioreactive) \n\n[Final project pt. 1, 19/06](#final-project-pt1)\n\n[Final project pt. 2, 26/06](#final-project-pt2)\n\n\n\u003ca name=\"#intro-to-the-course\"\u003e\n\n## Intro to the course\n\n\u003c/a\u003e\n\n- Goals of the course\n- Example of works\n- What is a shader, make your first one.\n\n### Resources/Inspiration\n\n- Chapter [1](https://thebookofshaders.com/01/), [2](https://thebookofshaders.com/02/) and [3](https://thebookofshaders.com/03/) of \"The Book of Shader\".\n- How to run your shader on different [platforms](https://thebookofshaders.com/04/)\n\n\n- [Horst Bartnig](https://www.google.com/search?q=horst+bartnig+patterns)\n- [Frieder Nake](https://www.google.com/search?q=Frieder+Nake+patterns)\n- [Gerard Richter](https://www.google.com/search?q=gerhard+richter+patterns)\n- [Mark Wilson](https://www.google.com/search?q=Mark+Wilson+patterns)\n- [Anni Albers](https://www.google.com/search?q=anni+albers)\n- [Joan Truckenbrod](https://www.google.com/search?q=Joan+Truckenbrod+patterns)\n- [Channe Horwitz](https://www.google.com/search?biw=1536\u0026bih=754\u0026tbm=isch\u0026sa=1\u0026ei=v6zeXJO2H8eQrgTR1rko\u0026q=Channa+Horwitz+patterns)\n- [Daniel Buren](https://www.google.com/search?q=Daniel+Buren+patterns)\n- [Sara Morris](https://www.google.com/search?hl=en\u0026source=hp\u0026ei=mWqnXJ3zBcLjsAeIkrC4Bw\u0026q=sarah+morris+pattern)\n- [Vera Molnar](https://www.google.com/search?ei=IWOnXPm_GcOasAefhI5I\u0026q=vera+molnar+patterns)\n- [Carsten Nicolai](https://www.google.com/search?q=carsten+nicolai+patterns)\n- [Ikeda pattern](https://www.google.com/search?biw=1024\u0026bih=530\u0026tbm=isch\u0026sa=1\u0026ei=NCPAXLSbKeWK1fAPxqiA4A8\u0026q=ryoji+ikeda+pattern)\n- [Casey Reas](http://reas.com/kttv/) and [Structure #003](https://artport.whitney.org/commissions/softwarestructures2016/s3_2/)\n- [Saskia Freeke](http://sasj.tumblr.com/)\n- [Leonardo Solas](http://solaas.com.ar/works/optic/optic.html)\n- [Ettore Sottsass](https://www.google.com/search?q=ettore+sottsass+bacteria)\n- [Archizoom](https://www.google.com/search?biw=1024\u0026bih=530\u0026tbm=isch\u0026sa=1\u0026ei=4BzAXOOwD4LRwQLN-ICYDQ\u0026q=archizoom+patterns)\n- [Ivan Serpa](https://www.google.com/search?q=Ivan+Serpa+patterns)\n\n\n### Class Activities\n\n- Your first shader\n\n### Homework\n- Find an artist working with pattern, collect 3/4 images of its work, you will show them in class the next lesson with your pattern.\n\n\n\u003ca name=\"#functions-and-colors\"\u003e\n\n## Functions and colors\n\n\u003c/a\u003e\n\n- chapter [5](https://thebookofshaders.com/05/) and [6](https://thebookofshaders.com/06/)of \"The Book of Shader\".\n\n\n\n### Resources/Inspiration\n\n- Inigo Quiles [functions](http://www.iquilezles.org/www/articles/functions/functions.htm)\n\n### Class Activities\n\n- Frontal lesson\n\n### Homework\n\n- Make at least 4 sketches. You have to use these functions (they do not have to appear all in the same sketch): `sin`, `cos`, `tan`, `fract`, `step`, `smoothstep`, `mod`, `mix`, `pow` \n- Finish to read [chapter 6](https://thebookofshaders.com/06/)\n\n\u003ca name=\"#shapes-and-signed-distance-function\"\u003e\n\n## Shapes and signed distance function\n\n\u003c/a\u003e\n\n### Resources/Inspiration\n\n- Chapter [7](https://thebookofshaders.com/07/) and [8](https://thebookofshaders.com/08/)of the Book of Shaders.\n- Hugh Kennedy [interactive tutorial](http://hughsk.io/fragment-foundry/chapters/07-distance-fields.html)\n- Inigo's 2d distance function [reference page](https://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm)\n\n### Class Activities\n\n\n### Homework\n- Draw a form that combines several shapes.\n\n\n\u003ca name=\"#matrices-and-patterns\"\u003e\n\n## Matrices and Patterns\n\n\u003c/a\u003e\n\n\n### Resources/Inspiration\n\n- chapter [8](https://thebookofshaders.com/08/) and [9](https://thebookofshaders.com/09/) of the Book of Shaders.\n- Multi-scale truchet patterns [1](http://archive.bridgesmathart.org/2018/bridges2018-39.pdf) and [2](https://christophercarlson.com/portfolio/multi-scale-truchet-patterns/).\n\n### Class Activities\n\n- Create your own pattern.\n\n\n### Homework\n- Create at least 2 patterns, one of those has to be a truchet pattern.\n- Think about a fabric on which you would like to project your pattern, think about how to hang it to a wall, if you want to project on a wall. Think about how could you move it, if you want to move it.\n\n\n\u003ca name=\"#audioreactive\"\u003e\n\n## Audioreactive\n\n\u003c/a\u003e\n\n\n### Class activities\n\n- Finish truchet patterns\n- Boolean operations see file BooleanOperation.frag\n- 2D noise\n- Make a copy of the OF app \"template shader audio reactive\".\n\n### Resources/Inspiration\n\n\n### Homework\n\n- Make at least 5 patterns that uses: boolean operations, truchet patterns, multi grid, rotation and scale.\n- Brainstorming for the Rundgang. Just come with an idea that we can do together.\n\n### Extra\n\nHave a look at:\n- Rioji Ikeda [works](http://www.ryojiikeda.com/)\n- Chapter [10](https://thebookofshaders.com/10/) and [11](https://thebookofshaders.com/11/) of the Book of shader.\n\n\n### Video recording\nIf you are on windows, install [wsl](https://docs.microsoft.com/en-us/windows/wsl/install-win10) first.\n\nInstall [glslViewer](https://github.com/patriciogonzalezvivo/glslViewer).\n\nUse [glslViewer](https://github.com/patriciogonzalezvivo/glslViewer) to launch your shader from the console. For example `glslViewer test.frag` to launch your test.frag shader. Use `glslViewer test.frag -w 1000 -h 1000` to render in a window of 1000x1000 pixels. To save your sketch as a collection of png files in a folder, use the `sequence` command. For example `sequence,0,6` saves the first 6 seconds of your shader in a sequence of png files.\n\nUse ffmpeg to merge those images into that folder into an mp4\n\n\n\n`ffmpeg -pattern_type glob -i \"*.png\" -s 1000x1000 -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4`\n\n\u003ca name=\"#final-project-pt1\"\u003e\n\n## Final project pt.1\n\n\u003c/a\u003e\n\n\n\u003ca name=\"#final-project-pt2\"\u003e\n\n## Final project pt.2\n\n\u003c/a\u003e\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedap%2Fudk-2019-pattern-projection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedap%2Fudk-2019-pattern-projection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedap%2Fudk-2019-pattern-projection/lists"}