aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-01-25 14:41:33 +0000
committers-ol <s-ol@users.noreply.github.com>2020-01-25 14:41:33 +0000
commitc955ef3220fbd27582162047a1dc58706a51760d (patch)
tree92700f1422040e34c1936e5ba702149608160d51
parentmerge fixes (diff)
downloadmmm-c955ef3220fbd27582162047a1dc58706a51760d.tar.gz
mmm-c955ef3220fbd27582162047a1dc58706a51760d.zip
add workshops section
-rw-r--r--root/$order1
-rw-r--r--root/articles/$order1
-rw-r--r--root/articles/xy-workshop/description: text$plain2
-rw-r--r--root/games/plonat_atek/pictures/text$moonscript -> fn -> mmm$dom.moon1
-rw-r--r--root/games/plonat_atek/text$markdown.md5
-rw-r--r--root/portfolio/text$moonscript -> mmm$dom.moon34
-rw-r--r--root/workshops/$order3
-rw-r--r--root/workshops/creative-coding/description: text$plain1
-rw-r--r--root/workshops/creative-coding/text$markdown.md34
-rw-r--r--root/workshops/shaders/description: text$plain1
-rw-r--r--root/workshops/shaders/text$markdown.md31
-rw-r--r--root/workshops/text$moonscript -> fn -> mmm$dom.moon10
-rw-r--r--root/workshops/title: text$plain1
-rw-r--r--root/workshops/xy-music/$order1
-rw-r--r--root/workshops/xy-music/description: text$plain1
-rw-r--r--root/workshops/xy-music/slides/$order (renamed from root/articles/xy-workshop/$order)0
-rw-r--r--root/workshops/xy-music/slides/01/text$html+frag.html (renamed from root/articles/xy-workshop/01/text$html+frag.html)0
-rw-r--r--root/workshops/xy-music/slides/01b/text$markdown.md (renamed from root/articles/xy-workshop/01b/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/01c/$order (renamed from root/articles/xy-workshop/01c/$order)0
-rw-r--r--root/workshops/xy-music/slides/01c/text$markdown.md (renamed from root/articles/xy-workshop/01c/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/01c/video/URL -> youtube$video (renamed from root/articles/xy-workshop/01c/video/URL -> youtube$video)0
-rw-r--r--root/workshops/xy-music/slides/02/text$markdown.md (renamed from root/articles/xy-workshop/02/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/03/text$markdown.md (renamed from root/articles/xy-workshop/03/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/04/text$markdown.md (renamed from root/articles/xy-workshop/04/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/05/text$markdown.md (renamed from root/articles/xy-workshop/05/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/06/text$markdown.md (renamed from root/articles/xy-workshop/06/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/07/text$markdown.md (renamed from root/articles/xy-workshop/07/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/08/$order (renamed from root/articles/xy-workshop/08/$order)0
-rw-r--r--root/workshops/xy-music/slides/08/image/image$png.png (renamed from root/articles/xy-workshop/08/image/image$png.png)bin285163 -> 285163 bytes
-rw-r--r--root/workshops/xy-music/slides/08/text$markdown.md (renamed from root/articles/xy-workshop/08/text$markdown.md)0
-rw-r--r--root/workshops/xy-music/slides/text$moonscript -> fn -> mmm$dom.moon (renamed from root/articles/xy-workshop/text$moonscript -> fn -> mmm$dom.moon)0
-rw-r--r--root/workshops/xy-music/text$markdown.md41
32 files changed, 147 insertions, 21 deletions
diff --git a/root/$order b/root/$order
index 06bd279..15ac679 100644
--- a/root/$order
+++ b/root/$order
@@ -1,6 +1,7 @@
about
blog
articles
+workshops
games
projects
experiments
diff --git a/root/articles/$order b/root/articles/$order
index 66aad40..97f81e8 100644
--- a/root/articles/$order
+++ b/root/articles/$order
@@ -1,3 +1,2 @@
mmmfs
-xy-workshop
realities
diff --git a/root/articles/xy-workshop/description: text$plain b/root/articles/xy-workshop/description: text$plain
deleted file mode 100644
index c3fefe0..0000000
--- a/root/articles/xy-workshop/description: text$plain
+++ /dev/null
@@ -1,2 +0,0 @@
-workshop: oscilloscope music and games with pure data
-
diff --git a/root/games/plonat_atek/pictures/text$moonscript -> fn -> mmm$dom.moon b/root/games/plonat_atek/pictures/text$moonscript -> fn -> mmm$dom.moon
index dfa03eb..4938596 100644
--- a/root/games/plonat_atek/pictures/text$moonscript -> fn -> mmm$dom.moon
+++ b/root/games/plonat_atek/pictures/text$moonscript -> fn -> mmm$dom.moon
@@ -7,6 +7,7 @@ import embed from (require 'mmm.mmmfs.util') require 'mmm.dom'
style: {
height: '15em'
margin: '0 .5em'
+ flex: '1 0 auto'
}
}
diff --git a/root/games/plonat_atek/text$markdown.md b/root/games/plonat_atek/text$markdown.md
index 63daec9..fe6879f 100644
--- a/root/games/plonat_atek/text$markdown.md
+++ b/root/games/plonat_atek/text$markdown.md
@@ -17,9 +17,12 @@ and the noise heard when the ball is lost is visible as a glitch on the oscillos
<mmm-embed nolink path="video"></mmm-embed>
+## Awards and Exhibitions
+*Plonat Atek* was awarded first place in the *Innovation* category, 8th in *Audio* and 24th overall at the *Ludum Dare 38 Compo* in 2017.
+The project has been exhibited at *A MAZE. Berlin 2018* and *Maker Faire Rome 2019*.
+
## History
*Plonat Atek* was originally developed in 48 hours for the *Ludum Dare 38 Compo* in June 2017.
-It was awarded first place in the *Innovation* category and was placed 8th in *Audio* and 24th overall.
You can find the original submission [here][ld] and documentation on how to download and run the jam version on the [itch.io page][itch].
Articles on the game accompanied by the video recording above have been published by [Hackaday][hackaday], [VICE Motherboard][motherboard] and others.
diff --git a/root/portfolio/text$moonscript -> mmm$dom.moon b/root/portfolio/text$moonscript -> mmm$dom.moon
index 4bbab69..5a1de7f 100644
--- a/root/portfolio/text$moonscript -> mmm$dom.moon
+++ b/root/portfolio/text$moonscript -> mmm$dom.moon
@@ -37,7 +37,7 @@ projects = {
li text 'HLSL shader palette system'
}
href: 'https://vectronom.arte.tv'
- media: embed_vid '/portfolio/vectronom/media:%20video$webm.webm'
+ media: embed_vid '/portfolio/vectronom/media:video/webm'
tags: :cs, :professional, :js, :shader, :game
}
{
@@ -92,7 +92,7 @@ projects = {
}
}
href: 'https://rise.tech'
- media: embed_img '/portfolio/rise/media:%20image$png.png'
+ media: embed_img '/portfolio/rise/media:image/png'
tags: :professional, :js, :tool
}
{
@@ -119,7 +119,7 @@ projects = {
}
}
href: 'https://loremipsum.s-ol.nu/'
- media: embed_img '/portfolio/lorem_ipsum/media:%20image$jpeg.jpg'
+ media: embed_img '/portfolio/lorem_ipsum/media:image/jpeg'
tags: :professional, :js, :collab, :game
}
{
@@ -132,8 +132,8 @@ projects = {
'communication via OSC/USB'
'individually programmable daughterboards'
}
- href: '/projects/btrktrl'
- media: embed_img '/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg'
+ href: '/projects/btrktrl/'
+ media: embed_img '/projects/btrktrl/pcb_glamour_top/:image/jpeg'
tags: :hardware, :tool, :cpp
}
{
@@ -144,8 +144,8 @@ projects = {
'block-based language for MIDI-music reactivity'
'implemented in openFrameworks/C++'
}
- href: '/projects/VJmidiKit'
- media: embed_vid '/portfolio/VJmidiKit/media:%20video$mp4.mp4'
+ href: '/projects/VJmidiKit/'
+ media: embed_vid '/portfolio/VJmidiKit/media:video/mp4'
tags: :tool, :cpp, :shader
}
{
@@ -156,8 +156,8 @@ projects = {
'touch-panel UI and control software with node, electron and react'
'interfaces with analog potentiometers, keypad matrix, switches'
}
- href: '/games/IYNX'
- media: embed_img '/games/IYNX/pictures/ui_menu/image$jpeg.jpg'
+ href: '/games/IYNX/'
+ media: embed_img '/games/IYNX/pictures/ui_menu/:image/jpeg'
tags: :collab, :game, :js, :hardware
}
{
@@ -169,8 +169,8 @@ projects = {
'runs on a Raspberry Pi Zero in a custom case with hardware controls'
"1st place in Innovation, LudumDare 38 Compo"
}
- href: '/games/plonat_atek'
- media: embed_img '/games/plonat_atek/pictures/amaze/image$jpeg.jpg'
+ href: '/games/plonat_atek/'
+ media: embed_img '/games/plonat_atek/pictures/amaze/:image/jpeg'
tags: :artistic, :game, :hardware
}
{
@@ -186,8 +186,8 @@ projects = {
}
}
}
- href: '/projects/iii-telefoni'
- media: embed_img '/projects/iii-telefoni/heads/image$jpeg.jpg'
+ href: '/projects/iii-telefoni/'
+ media: embed_img '/projects/iii-telefoni/heads/:image/jpeg'
tags: :artistic, :game, :js
}
{
@@ -199,7 +199,7 @@ projects = {
"8 encoders with RGB lighting"
"digtally controls a 8x8 switching matrix and 8 channels of volume modulation"
}
- media: embed_img '/portfolio/1u-mod/media:%20image$jpeg.jpg'
+ media: embed_img '/portfolio/1u-mod/media:image/jpeg'
tags: :collab, :hardware, :cpp
}
{
@@ -213,8 +213,8 @@ projects = {
li text 'client/server polymorphic UI framework'
li text 'built-in server-side rendering and interactive editing support'
}
- -- href: '/articles/mmmfs'
- media: embed_img '/portfolio/mmm/media:%20image$png.png'
+ href: '/articles/mmmfs/'
+ media: embed_img '/portfolio/mmm/media:image/png'
tags: :tool, :lua
}
{
@@ -226,7 +226,7 @@ projects = {
"interactive MIDI controls for the effect for performing it on stage"
}
href: 'https://chimpanzeebukkaque.bandcamp.com/releases'
- media: embed_img '/portfolio/visualist/media:%20image$jpeg.jpg'
+ media: embed_img '/portfolio/visualist/media:image/jpeg'
tags: :collab, :artistic, :cpp, :hardware, :shader
}
}
diff --git a/root/workshops/$order b/root/workshops/$order
new file mode 100644
index 0000000..d74b9f3
--- /dev/null
+++ b/root/workshops/$order
@@ -0,0 +1,3 @@
+xy-music
+shaders
+creative-coding
diff --git a/root/workshops/creative-coding/description: text$plain b/root/workshops/creative-coding/description: text$plain
new file mode 100644
index 0000000..5b53cf4
--- /dev/null
+++ b/root/workshops/creative-coding/description: text$plain
@@ -0,0 +1 @@
+creative coding for web developers
diff --git a/root/workshops/creative-coding/text$markdown.md b/root/workshops/creative-coding/text$markdown.md
new file mode 100644
index 0000000..8d6bf76
--- /dev/null
+++ b/root/workshops/creative-coding/text$markdown.md
@@ -0,0 +1,34 @@
+# creative coding for web developers
+This is a workshop i am currently preparing.
+If you are interested in having this workshop be held at your institution,
+please contact me!
+
+## topics
+In this workshop I will introduce the topic of *creative coding*, present some
+inspiration and examples, as well as teach the basics of the JavaScript canvas
+API for creating artistic animations and other creative projects such as
+the following:
+
+<mmm-embed nolink path="../../projects/demoloops/toroid"></mmm-embed>
+<mmm-embed nolink path="../../projects/demoloops/twisted"></mmm-embed>
+
+* <mmm-link path="../../experiments/center_of_mass">experiment: aligning fonts by their center of mass</mmm-link>
+* <mmm-link path="../../experiments/parallax_panels">experiment: parallax SVG viewer</mmm-link>
+
+The workshop is designed to accompany an 'industry-focused' course in web development,
+and aims to deliver some wider perspective over the possibilities and creative use of
+technology to participants. The following topics are covered:
+
+- what is creative coding?
+- creative coding frameworks
+- the canvas API
+ - drawing basic shapes
+ - colors
+ - input events
+- animation
+ - `requestAnimationFrame`
+ - easing functions
+- online creative coding communities
+
+The exact topics and structure can be adjusted based on the course runtime and
+level of the participants' experience.
diff --git a/root/workshops/shaders/description: text$plain b/root/workshops/shaders/description: text$plain
new file mode 100644
index 0000000..d3e92b1
--- /dev/null
+++ b/root/workshops/shaders/description: text$plain
@@ -0,0 +1 @@
+(procedural) graphics with math and shaders
diff --git a/root/workshops/shaders/text$markdown.md b/root/workshops/shaders/text$markdown.md
new file mode 100644
index 0000000..cea0001
--- /dev/null
+++ b/root/workshops/shaders/text$markdown.md
@@ -0,0 +1,31 @@
+# (procedural) graphics with math and shaders
+This is a workshop i am currently preparing.
+If you are interested in having this workshop be held at your institution,
+please contact me!
+
+## topics
+In this workshop I will cover the principles and tricks behind procedural
+graphics and animations like the following examples:
+
+<mmm-embed nolink path="../../projects/demoloops/toroid"></mmm-embed>
+<mmm-embed nolink path="../../projects/VJmidiKit/boxy_dnb"></mmm-embed>
+<mmm-embed nolink path="../../projects/VJmidiKit/kaleidoscope"></mmm-embed>
+<mmm-embed nolink path="../../projects/demoloops/twisted"></mmm-embed>
+
+I plan to introduce the participants to the following topics:
+
+- what are procedural graphics?
+- what are shaders?
+- drawing a circle (with math)
+- transforming space
+ - moving, scaling, rotating
+ - mirroring, repeating, fractals
+ - bending space
+- procedural animation
+ - tweaking motion
+ - easing functions
+- signed distance fields and raymarching
+- basic lighting
+
+The exact topics and structure can be adjusted based on the course runtime and
+level of the participants' experience.
diff --git a/root/workshops/text$moonscript -> fn -> mmm$dom.moon b/root/workshops/text$moonscript -> fn -> mmm$dom.moon
new file mode 100644
index 0000000..372a96f
--- /dev/null
+++ b/root/workshops/text$moonscript -> fn -> mmm$dom.moon
@@ -0,0 +1,10 @@
+import div, h3, ul, li, p from require 'mmm.dom'
+import link_to from (require 'mmm.mmmfs.util') require 'mmm.dom'
+
+=>
+ div {
+ h3 link_to @
+ ul for child in *@children
+ desc = child\gett 'description: mmm/dom'
+ li (link_to child, desc)
+ }
diff --git a/root/workshops/title: text$plain b/root/workshops/title: text$plain
new file mode 100644
index 0000000..314277d
--- /dev/null
+++ b/root/workshops/title: text$plain
@@ -0,0 +1 @@
+workshops and teaching
diff --git a/root/workshops/xy-music/$order b/root/workshops/xy-music/$order
new file mode 100644
index 0000000..e4e7469
--- /dev/null
+++ b/root/workshops/xy-music/$order
@@ -0,0 +1 @@
+slides
diff --git a/root/workshops/xy-music/description: text$plain b/root/workshops/xy-music/description: text$plain
new file mode 100644
index 0000000..71ea88e
--- /dev/null
+++ b/root/workshops/xy-music/description: text$plain
@@ -0,0 +1 @@
+oscilloscope music and games with pure data
diff --git a/root/articles/xy-workshop/$order b/root/workshops/xy-music/slides/$order
index 4600622..4600622 100644
--- a/root/articles/xy-workshop/$order
+++ b/root/workshops/xy-music/slides/$order
diff --git a/root/articles/xy-workshop/01/text$html+frag.html b/root/workshops/xy-music/slides/01/text$html+frag.html
index 2441f62..2441f62 100644
--- a/root/articles/xy-workshop/01/text$html+frag.html
+++ b/root/workshops/xy-music/slides/01/text$html+frag.html
diff --git a/root/articles/xy-workshop/01b/text$markdown.md b/root/workshops/xy-music/slides/01b/text$markdown.md
index 22c1454..22c1454 100644
--- a/root/articles/xy-workshop/01b/text$markdown.md
+++ b/root/workshops/xy-music/slides/01b/text$markdown.md
diff --git a/root/articles/xy-workshop/01c/$order b/root/workshops/xy-music/slides/01c/$order
index 2b68b52..2b68b52 100644
--- a/root/articles/xy-workshop/01c/$order
+++ b/root/workshops/xy-music/slides/01c/$order
diff --git a/root/articles/xy-workshop/01c/text$markdown.md b/root/workshops/xy-music/slides/01c/text$markdown.md
index ba5718c..ba5718c 100644
--- a/root/articles/xy-workshop/01c/text$markdown.md
+++ b/root/workshops/xy-music/slides/01c/text$markdown.md
diff --git a/root/articles/xy-workshop/01c/video/URL -> youtube$video b/root/workshops/xy-music/slides/01c/video/URL -> youtube$video
index bf07555..bf07555 100644
--- a/root/articles/xy-workshop/01c/video/URL -> youtube$video
+++ b/root/workshops/xy-music/slides/01c/video/URL -> youtube$video
diff --git a/root/articles/xy-workshop/02/text$markdown.md b/root/workshops/xy-music/slides/02/text$markdown.md
index 3496b23..3496b23 100644
--- a/root/articles/xy-workshop/02/text$markdown.md
+++ b/root/workshops/xy-music/slides/02/text$markdown.md
diff --git a/root/articles/xy-workshop/03/text$markdown.md b/root/workshops/xy-music/slides/03/text$markdown.md
index c90491e..c90491e 100644
--- a/root/articles/xy-workshop/03/text$markdown.md
+++ b/root/workshops/xy-music/slides/03/text$markdown.md
diff --git a/root/articles/xy-workshop/04/text$markdown.md b/root/workshops/xy-music/slides/04/text$markdown.md
index e07fbca..e07fbca 100644
--- a/root/articles/xy-workshop/04/text$markdown.md
+++ b/root/workshops/xy-music/slides/04/text$markdown.md
diff --git a/root/articles/xy-workshop/05/text$markdown.md b/root/workshops/xy-music/slides/05/text$markdown.md
index 256c654..256c654 100644
--- a/root/articles/xy-workshop/05/text$markdown.md
+++ b/root/workshops/xy-music/slides/05/text$markdown.md
diff --git a/root/articles/xy-workshop/06/text$markdown.md b/root/workshops/xy-music/slides/06/text$markdown.md
index fa5b139..fa5b139 100644
--- a/root/articles/xy-workshop/06/text$markdown.md
+++ b/root/workshops/xy-music/slides/06/text$markdown.md
diff --git a/root/articles/xy-workshop/07/text$markdown.md b/root/workshops/xy-music/slides/07/text$markdown.md
index 518b9fb..518b9fb 100644
--- a/root/articles/xy-workshop/07/text$markdown.md
+++ b/root/workshops/xy-music/slides/07/text$markdown.md
diff --git a/root/articles/xy-workshop/08/$order b/root/workshops/xy-music/slides/08/$order
index 773b222..773b222 100644
--- a/root/articles/xy-workshop/08/$order
+++ b/root/workshops/xy-music/slides/08/$order
diff --git a/root/articles/xy-workshop/08/image/image$png.png b/root/workshops/xy-music/slides/08/image/image$png.png
index ff82a9d..ff82a9d 100644
--- a/root/articles/xy-workshop/08/image/image$png.png
+++ b/root/workshops/xy-music/slides/08/image/image$png.png
Binary files differ
diff --git a/root/articles/xy-workshop/08/text$markdown.md b/root/workshops/xy-music/slides/08/text$markdown.md
index 92ab316..92ab316 100644
--- a/root/articles/xy-workshop/08/text$markdown.md
+++ b/root/workshops/xy-music/slides/08/text$markdown.md
diff --git a/root/articles/xy-workshop/text$moonscript -> fn -> mmm$dom.moon b/root/workshops/xy-music/slides/text$moonscript -> fn -> mmm$dom.moon
index 701a14c..701a14c 100644
--- a/root/articles/xy-workshop/text$moonscript -> fn -> mmm$dom.moon
+++ b/root/workshops/xy-music/slides/text$moonscript -> fn -> mmm$dom.moon
diff --git a/root/workshops/xy-music/text$markdown.md b/root/workshops/xy-music/text$markdown.md
new file mode 100644
index 0000000..3f4f09c
--- /dev/null
+++ b/root/workshops/xy-music/text$markdown.md
@@ -0,0 +1,41 @@
+# oscilloscope music and games with pure data
+
+<mmm-embed wrap="raw" path="../../games/plonat_atek/pictures/amaze" /></mmm-embed>
+
+This is a workshop I gave at [Maker Faire Rome 2019][mfr].
+For more information on my work on this topic, also see my Oscilloscope Game <mmm-link path="../../games/plonat_atek"></mmm-link>.
+
+## description
+
+> In this workshop we will learn how to view and listen to Oscilloscope Music, how it works, and how to create your own Oscilloscope Music using PureData.
+> Please bring a laptop and headphones to participate.
+>
+> Oscilloscope Music is music produced in such a way, that when the stereo signal is applied to an Oscilloscope screen,
+> the same signals that are heard create a visual animation.
+>
+> You can see some examples of Oscilloscope Music created by Jerobeam Fenderson here:
+>
+> - https://www.youtube.com/watch?v=rtR63-ecUNo
+> - https://oscilloscopemusic.com/
+>
+> In this workshop, we will cover the following:
+>
+> - What is Oscilloscope Music?
+> - How do Oscilloscopes work?
+> - How do Speakers and Audio Waves work?
+> - Simulating an Oscilloscope on your laptop
+> - Creating Oscilloscope Sounds using the PureData visual programming language
+>
+> No special experience is required for this workshop.
+> Please bring a laptop and headphones!
+> If you are using an Operating System other than Windows and Mac OS X, please install "purr-data" before the workshop.
+
+## slides
+
+focus the slide area with the mouse and hit 'r' to adjust the content scaling.
+optimized for 1080p projectors.
+
+<mmm-embed wrap="raw" path="slides"></mmm-embed>
+
+[mfr]: https://2019.makerfairerome.eu/en/events-en/?ids=110
+