From 347142e6eda7c1a83a5f171d4a5aad2ac70ba9c1 Mon Sep 17 00:00:00 2001 From: Gabriel Dunne Date: Thu, 31 Jan 2019 17:53:57 -0800 Subject: [PATCH 1/1] Init --- .gitattributes | 2 + .gitignore | 2 + _config.yml | 12 + _drafts/2007-07-02-femfreq.md | 11 + _drafts/2013-01-20-femfreq.md | 10 + _drafts/2014-04-29-tetra-table.md | 563 ++++++++++++++++++ _includes/about.md | 163 +++++ _includes/archive-sort.html | 9 + _includes/google-analytics.html | 8 + _includes/nav.html | 26 + _layouts/default.html | 23 + _layouts/post.html | 20 + _layouts/print.html | 23 + _plugins/flickr_set.rb | 117 ++++ _posts/notes/2007-08-03-sf-shadows.md | 38 ++ _posts/notes/2009-04-12-triangles.md | 15 + _posts/notes/2014-04-23-gh-td.md | 30 + _posts/notes/2014-05-08-phi.md | 126 ++++ _posts/notes/2015-12-08-st.md | 16 + _posts/notes/2015-12-25-tri.md | 10 + _posts/notes/2015-12-30-17-10-37.md | 40 ++ .../projects/2005-01-01-tessellated-logo.md | 12 + _posts/projects/2006-05-03-slashysans.md | 12 + .../projects/2006-05-05-celestialmechanics.md | 87 +++ _posts/projects/2006-05-05-footagefold.md | 81 +++ _posts/projects/2008-07-05-cabspotting.md | 22 + _posts/projects/2009-04-08-mekstension.md | 68 +++ _posts/projects/2009-08-09-bayareatrans.md | 29 + _posts/projects/2010-10-04-seaquence.md | 28 + _posts/projects/2012-04-03-audioshadertoy.md | 36 ++ _posts/projects/2012-12-20-naag.md | 41 ++ _posts/projects/2013-08-30-vaticadahlia.md | 39 ++ _posts/projects/2015-03-15-naagz.md | 25 + _posts/projects/2015-10-15-naagxy.md | 45 ++ _posts/projects/2016-03-14-seaquence-app.md | 20 + _posts/projects/2018-09-22-metaflux.md | 123 ++++ _posts/works/2001-07-05-arch.md | 24 + _posts/works/2002-05-01-colorcalc.md | 244 ++++++++ _posts/works/2002-06-12-celestes.md | 18 + _posts/works/2003-05-05-bodyneg.md | 20 + _posts/works/2007-07-02-mask.md | 14 + _posts/works/2007-08-23-prism.md | 12 + _posts/works/2008-05-02-rattle.md | 22 + _posts/works/2008-05-04-forestweb.md | 24 + _posts/works/2008-10-05-swimtank.md | 14 + _posts/works/2009-01-06-seashell.md | 13 + _posts/works/2009-02-02-synonymovement.md | 13 + _posts/works/2009-05-06-cymatic-organ.md | 76 +++ _posts/works/2009-08-20-stars.md | 27 + _posts/works/2010-12-20-monad.md | 83 +++ _posts/works/2011-07-11-icosi.md | 162 +++++ _posts/works/2014-04-24-tetra-field.md | 102 ++++ _posts/works/2015-01-21-hyperterra.md | 33 + about-print.md | 7 + about.md | 13 + archive-c.html | 25 + archive-d.html | 52 ++ blog/index.html | 37 ++ categories.html | 16 + css/gdsans.ttf | Bin 0 -> 6084 bytes css/letter_gothic.ttf | Bin 0 -> 43968 bytes css/main.css | 273 +++++++++ css/marx.css | 461 ++++++++++++++ css/simplex.ttf | Bin 0 -> 127979 bytes css/syntax.css | 60 ++ index.md | 85 +++ keybase.txt | 75 +++ news.md | 24 + past.md | 14 + projects.md | 23 + publish-nomedia.sh | 6 + publish.sh | 6 + works.html | 23 + 73 files changed, 4033 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _config.yml create mode 100644 _drafts/2007-07-02-femfreq.md create mode 100644 _drafts/2013-01-20-femfreq.md create mode 100644 _drafts/2014-04-29-tetra-table.md create mode 100644 _includes/about.md create mode 100644 _includes/archive-sort.html create mode 100644 _includes/google-analytics.html create mode 100644 _includes/nav.html create mode 100644 _layouts/default.html create mode 100644 _layouts/post.html create mode 100644 _layouts/print.html create mode 100644 _plugins/flickr_set.rb create mode 100644 _posts/notes/2007-08-03-sf-shadows.md create mode 100755 _posts/notes/2009-04-12-triangles.md create mode 100644 _posts/notes/2014-04-23-gh-td.md create mode 100644 _posts/notes/2014-05-08-phi.md create mode 100644 _posts/notes/2015-12-08-st.md create mode 100644 _posts/notes/2015-12-25-tri.md create mode 100644 _posts/notes/2015-12-30-17-10-37.md create mode 100755 _posts/projects/2005-01-01-tessellated-logo.md create mode 100644 _posts/projects/2006-05-03-slashysans.md create mode 100755 _posts/projects/2006-05-05-celestialmechanics.md create mode 100755 _posts/projects/2006-05-05-footagefold.md create mode 100755 _posts/projects/2008-07-05-cabspotting.md create mode 100755 _posts/projects/2009-04-08-mekstension.md create mode 100755 _posts/projects/2009-08-09-bayareatrans.md create mode 100755 _posts/projects/2010-10-04-seaquence.md create mode 100755 _posts/projects/2012-04-03-audioshadertoy.md create mode 100755 _posts/projects/2012-12-20-naag.md create mode 100755 _posts/projects/2013-08-30-vaticadahlia.md create mode 100755 _posts/projects/2015-03-15-naagz.md create mode 100755 _posts/projects/2015-10-15-naagxy.md create mode 100755 _posts/projects/2016-03-14-seaquence-app.md create mode 100644 _posts/projects/2018-09-22-metaflux.md create mode 100755 _posts/works/2001-07-05-arch.md create mode 100644 _posts/works/2002-05-01-colorcalc.md create mode 100755 _posts/works/2002-06-12-celestes.md create mode 100755 _posts/works/2003-05-05-bodyneg.md create mode 100755 _posts/works/2007-07-02-mask.md create mode 100755 _posts/works/2007-08-23-prism.md create mode 100755 _posts/works/2008-05-02-rattle.md create mode 100644 _posts/works/2008-05-04-forestweb.md create mode 100644 _posts/works/2008-10-05-swimtank.md create mode 100644 _posts/works/2009-01-06-seashell.md create mode 100755 _posts/works/2009-02-02-synonymovement.md create mode 100755 _posts/works/2009-05-06-cymatic-organ.md create mode 100755 _posts/works/2009-08-20-stars.md create mode 100755 _posts/works/2010-12-20-monad.md create mode 100755 _posts/works/2011-07-11-icosi.md create mode 100644 _posts/works/2014-04-24-tetra-field.md create mode 100644 _posts/works/2015-01-21-hyperterra.md create mode 100644 about-print.md create mode 100644 about.md create mode 100644 archive-c.html create mode 100644 archive-d.html create mode 100644 blog/index.html create mode 100644 categories.html create mode 100644 css/gdsans.ttf create mode 100755 css/letter_gothic.ttf create mode 100755 css/main.css create mode 100755 css/marx.css create mode 100644 css/simplex.ttf create mode 100644 css/syntax.css create mode 100644 index.md create mode 100644 keybase.txt create mode 100644 news.md create mode 100644 past.md create mode 100644 projects.md create mode 100755 publish-nomedia.sh create mode 100755 publish.sh create mode 100644 works.html diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..b57ba4d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +m/ filter=lfs diff=lfs merge=lfs -text +m/*.png filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a62a37 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +_site diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..74733e9 --- /dev/null +++ b/_config.yml @@ -0,0 +1,12 @@ +name : Gabriel Dunne +author : Gabriel Dunne +author_url : http://gabrieldunne.com +author_email : studio@gabrieldunne.com +markdown : redcarpet +highlighter : true +paginate : 8 +paginate_path : blog/:num +permalink : /:title/ +baseurl : "" +plugins : [jekyll-paginate] +exclude : [ publish.sh, publish-nomedia.sh ] diff --git a/_drafts/2007-07-02-femfreq.md b/_drafts/2007-07-02-femfreq.md new file mode 100644 index 0000000..85f8362 --- /dev/null +++ b/_drafts/2007-07-02-femfreq.md @@ -0,0 +1,11 @@ +--- +layout: post +date: 2013-01-20 +title: Fem Freq Logo +categories: design commercial +--- + +![]({{site.baseurl}}/m/femfreq/ff01.png) + +logotype spec + diff --git a/_drafts/2013-01-20-femfreq.md b/_drafts/2013-01-20-femfreq.md new file mode 100644 index 0000000..ae22255 --- /dev/null +++ b/_drafts/2013-01-20-femfreq.md @@ -0,0 +1,10 @@ +--- +layout: post +date: 2013-01-20 +title: Fem Freq Logo +categories: project +--- + +![]({{site.baseurl}}/m/femfreq/ff01.png) + +logotype spec diff --git a/_drafts/2014-04-29-tetra-table.md b/_drafts/2014-04-29-tetra-table.md new file mode 100644 index 0000000..af707f5 --- /dev/null +++ b/_drafts/2014-04-29-tetra-table.md @@ -0,0 +1,563 @@ +--- +layout: post +title: "Tetra Table" +date: 2014-04-29 +categories: article process +author: Gabriel Dunne +--- + + +### Software + - Rhino + - Grasshopper + +### Tools + - Laser Cutter + - Table Saw + +### Materials + - Wood Glue + - 4' x 8' x 3/4" birch sandply + + +## Design + +I am using Rhinoceros 3D. There is an evaluation version for Windows or Mac available at [http://www.rhino3d.com/download](http://www.rhino3d.com/download). + +There are many of ways to create this type of geometric form, especially with software like Rhino, and its companion plugin for algorhythmic design: Grasshopper. For this tutorial, I'm going to go about it in a way that is based on simple transforms and booleans as an attempt to be software agnostic. + + + +## Creating a Tetrahedron + +I'll cover two methods for creating a Tetrahedron in Rhino. One is from scratch, the other is using the Pyramid tool. Creating a Tetrahedron from scratch requires knowing the shapes' height based on its edge length. Starting from an edge length of 10, we can use the height formula for a regular tetrahedron: + +[height formula] + +Then, I use a calculator to solve for *h*. I'm rounding to the hundreths for brevity, but you should use as many numbers past the decimal that your calculator or computer spits out + +2 / 3 +**= 0.667** +squareroot +**= 0.816** +* 10 (edge length) +**= 8.164** + +Result: A tetrahedron with edge length 10 will have a height of 8.164. + + +[polygon video] + + +If you're using Rhino want to shortcut the process of do this all from scratch, you can also use the Pyramid tool. + + +## Pyramid Method + +Type `Pyramid` into the command line. + +Options will appear in the command line. By clicking on the variables, set the options to equal: + + NumSides=3 DirectionalConstraint=Vertical Solid=Yes + +Click Edge in the Pyramid command. + +Type `0` to set the origin + +Type `10` to set the edge length, and now the base of the pyramid will be constrained to 10 inch edges. + +Hold down shift to constrain the axis, and when you orient the tip of the base on the X axis, click once. + +[image of constrain] + +Type `8.16496580927726` into the command line. You can be as precise as you like, or just copypasta from this tutorial. In the top view, orient the shape so it's right side up, and click once. + +Tetrahedron! + + + + + +## Truncation + +Now, we need to truncate our shape. + +Fist, we need to find the center of our shape. There are many ways to do this is various software, let's do it by hand. + +First I create a new layer and make it a color. + +I use the snapping tools to find the center of all the edges, and draw three lines that intersect at the center of all the faces. I do this for all 4 faces of the form. + +Then, I draw four lines that originate from the center of each face, and coincides with the far vertex opposite the face. + +The center of the form is where these four lines intersect. We can use the "Point" tool to create a point at the intersection. + +Type "Move" in the command line, and move our shape and the centerpoint we just created to the origin. + +Now we're centered. + +Select everything and group them with Command-G. + +Type "Rotate" into the command line. + +Type 0 to center at the origin, and set `Copy=Yes` in the command line options by clicking it. + +Hold down shift and click to set the second reference point on the vertical axis. + +With shift still held, rotate the form completely around so it's upside down, and press enter. + +Right Click to redo our same rotate command, but make sure Copy is set to Off. + +Type "0" to set the origin, hold down shift, and rotate the entire form 180 degrees from the top view. + +Now we have two intersecting tetrahedrons. If we were to do a boolean combine of these two objects, we would have an icosohedron. + +To create our truncation,we can scale one of the tetrahedrons to our liking, using the center point as the scale origin. + +When you get to a scale that you like, type Boolean2Objects, and click to cycle through the various boolean operations until you arrive at the truncated shape. You can keep trying different truncation scales until you find one you like. + +If you want t truncate the shape so it creates a perfect hexagon on three sides, enter "0" as the origin, and enter `1.666666666` as the scale factor. + +After you complete the Boolean2Objects command, your shape is complete. + +You can clean up and delete all the extra guide lines at this point. + +[blue truncated tet] + +Now, we need to scale the object to our build size. + + + +For my design, I'm going to ultimately use this as a table, so I'm going to cut off a bit from the bottom. This actually adds a little more work because I'll have to cut a few unique shapes in the plywood. + +I'm going to truncate at a `0.6666` of the length of the hexagon edges, because thirds are nice and the fractions are inherent to this geometry. I create a line along the edge of the lower hexagon sides, and then use the Divide tool with 3 segments. + +I then create a rectangle plane, and align it to the 2/3d's segement, and do another boolean. + +I chose 22" as the height of the finished object, which fits onto a single sheet of 4' x 8' ply. + +To make it easier to work with the form, I draw guidelines at the base and the top so I know where center is. These intersections are the reference point for moving and scaling the object. + +Move the object to the origin, and draw a 22" inch line from 0 on the Y axis. We'll use this line to scale to. + +Then, I make trace all the edges, do 3pt orients, and align them to the cutting plane. + + + +## Creating Thickness + +Steps to create material thickness: + +1. Offset mesh by .75 +2. Convert mesh to surfaces +3. DupBorderEdge to find edge curves +4. Loft inner curve to outer curve + +You only need to do this for each individual piece, and then duplicate them. + + + +## Measuring Mitre Angles + +We need guidlines for measuring perpendicular to the edge of the face. + +[mitre angle edge measure] + +Then we measure the angle between the faces by typing "angle" in the command line, and selecting the beginning and ending of both lines. Then we find the mitre angle by dividing in half. + +For Support A, the hexagon-to-hexagon mating edge: + +70.529 / 2 +**= 35.2645** + +And for Support B, the hexagon-to-triangle edges: + +109.471 / 2 +**= 54.7355** + +We're going to use these angles to make some internal support triangle blocks. + + +You can create thes any way you like. I navigate inside my object and just build them in relation to the form. I also add notches in the side of the triangle that won't be mated, so there's no puzzle-piece confusing when we assemble. + +We'll need to make 18 of each. Duplicate them so we have 18 each, and lay them out for our cut. You can be as precise as you like in laying out your cutfile. I typically try to be conservative with the material. + +[cutfile image] + +Now, we lasercut! + + +[Metabeam Cutting Awesomeness] + +Now that the shapes are cut, we can mitre the edges. + +Using masking tape, I mark all the angles and lay them out. + +I'm using a 1HP Bosche Trim Router with a tilt add-on. + +This is an analog method of setting the angle, I typically error on the side of cutting more material away, because it's easier to fix a gap on the inside of the form, rather than the edges. + +[photos of setting the router angle] + +I cut all the edges one angle before setting the tool again. + +[cutting angles A] + +Now set the router to our additional angle + +[cutting angles B] + +We have one more special angle to cut, for the parts of the form that rest on the ground. + +[photo of cutting foot angle] + +We're done cutting! + + +## Assembly + +We'll work upside down, and build the form up. Place the top of the form upside down on the worksurface + +[form upside down] + +And glue in supports. We can also screw or brad them in. I'm measuing out a fractional 1/3 position for the positions of my supports. + +[adding supports] + +Next, we add supports to the hexagonal sides, in order. + +[lay out supports on sides] + +Attach supports to hexagonal sides with glue and or brads + +[attaching supports] + +Arrange the sides and use a ratchet strap to hold them together while the glue sets + +[Setting sides] + +Attach sides to tabletop. + +[Attach hexagonal sides to eachother] + +The last part is the attach the triangles via glue and/or brads. + +[attaching triangles] + +Using an electric sander at first, buff the entire shape, and then lightly hit the corners by hand. + +[picture of finishing corners] + +Use your choice of finish to seal. I went with a combination beezwax oil. + +[finished glamour shots] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Truncated Tetrahedron Stool/Table + +I'm continuing my interations with the Tetrahedron model. I like using it for experiments because of it's a very basic "root" shape. This article will cover the creation of a truncated tetrahedron shape out of 3/4" material, with mitred joins. + +Software used in this tutorial: + - Rhino + - Grasshopper + +Tools: + - Laser Cutter + - Table Saw + +Materials + - 1 sheet 4' x 8' x 1/2" birch sandply + + +Step 1: Shape Design + +I am using Rhinoceros 3D for this tutorial. You can download a evaluation version for Windows or Mac here: http://www.rhino3d.com/download + +Start Rhino and create a new file with the template Small/Inches. + +[01-loading-rhino.png] + +There are a myriad of ways to create this type of geometric form, especially with software like Rhino, and its companion plugin, Grasshopper. For this tutorial, I'm going to go about it in a way that is based on transforms and booleans, so it should be portable in concept to other software. + +Tetrahedron From Scratch + +The first variable we use to define the shape is its edge length. Then, we figure out the height from that value with the height formula for a regular tetrahedron: + +[height formula] + +We can use a calculator to solve for h. I'm rounding to the hundreths for brevity, but you should use as many numbers past the decimal that your calculator or computer spits out + +2 / 3 +0.667 +squareroot +0.816 +* 10 (edge length) +8.164 + +This shows that a tetrahedron with edge length 10 will have a height of 8.164. + +Oh, and if you want to shortcut the process of do this all from scratch, you can use the Pyramid tool, which is specific to Rhino, but other software will have this tool or something similar: + +[polygon video] + +Polygon Method + +Type "Polygon" + + + + + + +Pyramid Method + +Type "Pyramid" into the command line. + +Options will appear in the command line. Set: +NumSides=3 DirectionalConstraint=Vertical Solid=Yes + +Click Edge in the Pyramid command. + +Type "0" to set the origin + +Type "10" to set the edge length, and now the base of the pyramid will be constrained to 10 inch edges. + +Hold down shift to constrain the axis, and when you orient the tip of the base on the X axis, click once. + +[image of constrain] + +Type 8.16496580927726 into the command line. You can be as precise as you like, or just copy and paste from this tutorial. In the top view, orient the shape so it's right side up, and click once. + +Tetrahedron! + + + + + +## Truncation + +Now, we need to truncate our shape. + +Fist, we need to find the center of our shape. There are many ways to do this is various software, let's do it by hand. + +First I create a new layer and make it a color. + +I use the snapping tools to find the center of all the edges, and draw three lines that intersect at the center of all the faces. I do this for all 4 faces of the form. + +Then, I draw four lines that originate from the center of each face, and coincides with the far vertex opposite the face. + +The center of the form is where these four lines intersect. We can use the "Point" tool to create a point at the intersection. + +Type "Move" in the command line, and move our shape and the centerpoint we just created to the origin. + +Now we're centered. + +Select everything and group them with Command-G. + +Type "Rotate" into the command line. + +Type 0 to center at the origin, and set "Copy" to "Yes" in the command line options by clicking it. + +Hold down shift and click to set the second reference point on the vertical axis. + +With shift still held, rotate the form completely around so it's upside down, and press enter. + +Right Click to redo our same rotate command, but make sure Copy is set to Off. + +Type "0" to set the origin, hold down shift, and rotate the entire form 180 degrees from the top view. + +Now we have two intersecting tetrahedrons. If we were to do a boolean combine of these two objects, we would have an icosohedron. + +To create our truncation,we can scale one of the tetrahedrons to our liking, using the center point as the scale origin. + +When you get to a scale that you like, type Boolean2Objects, and click to cycle through the various boolean operations until you arrive at the truncated shape. You can keep trying different truncation scales until you find one you like. + +If you want t truncate the shape so it creates a perfect hexagon on three sides, enter "0" as the origin, and enter "1.666666666" as the scale factor. + +After you complete the Boolean2Objects command, your shape is complete. + +You can clean up and delete all the extra guide lines at this point. + +[blue truncated tet] + +Now, we need to scale the object to our build size. + +Stretch break. + +Ok, we're back. + + +For my design, I'm going to ultimately use this as a table, so I'm going to cut off a bit from the bottom. This actually adds a little more work because I'll have to cut a few unique shapes in the plywood. + +I'm going to truncate at a 0.6666 of the length of the hexagon edges, because thirds are nice. I create a line along the edge of the lower hexagon sides, and then use the Divide tool with 3 segments. + +I then create a rectangle plane, and align it to the 2/3d's segement, and do another boolean. + +I chose 22" as the height of the finished object, which fits onto a single sheet of 4' x 8' ply. + +To make it easier to work with the form, I draw guidelines at the base and the top so I know where center is. These intersections are the reference point for moving and scaling the object. + +Move the object to the origin, and draw a 22" inch line from 0 on the Y axis. We'll use this line to scale to. + +Then, I make trace all the edges, do 3pt orients, and align them to the cutting plane. + + + +## Creating Thickness + +We need to: +1. Offset mesh by .75 +2. Convert mesh to surfaces +3. Dup border edge to find curves +4. Loft inner curve to outer curve + +you only need to do this for each individual piece, and then duplicate them. + + + +## Measuring the Mitre Angles + +We need to draw some guidlines for measuring perpendicular to the edge of the face. + +[mitre angle edge measure] + +Then we measure the angle between the faces by typing "angle" in the command line, and selecting the beginning and ending of both lines. Then we find the mitre angle by dividing in half. + +For Support A, the hexagon-to-hexagon mating edge: +70.529 +/ 2 +35.2645 + +And for Support B, the hexagon-to-triangle edges: +109.471 +/ 2 +54.7355 + +We're going to use these angles to make some internal support triangle blocks. + + +You can create thes any way you like. I navigate inside my object and just build them in relation to the form. I also add notches in the side of the triangle that won't be mated, so there's no puzzle-piece confusing when we assemble. + +We'll need to make 18 of each. Duplicate them so we have 18 each, and lay them out for our cut. You can be as precise as you like in laying out your cutfile. I typically try to be conservative with the material. + +[cutfile image] + +Now, we lasercut! + + +[Metabeam Cutting Awesomeness] + +Now that the shapes are cut, we can mitre the edges. + +Using masking tape, I mark all the angles and lay them out. + +I'm using a 1HP Bosche Trim Router with a tilt add-on. + +This is an analog method of setting the angle, I typically error on the side of cutting more material away, because it's easier to fix a gap on the inside of the form, rather than the edges. + +[photos of setting the router angle] + +I cut all the edges one angle before setting the tool again. + +[cutting angles A] + +Now set the router to our additional angle + +[cutting angles B] + +We have one more special angle to cut, for the parts of the form that rest on the ground. + +[photo of cutting foot angle] + +We're done cutting! + + +## Assembly + +We'll work upside down, and build the form up. Place the top of the form upside down on the worksurface + +[form upside down] + +And glue in supports. We can also screw or brad them in. I'm measuing out a fractional 1/3 position for the positions of my supports. + +[adding supports] + +Next, we add supports to the hexagonal sides, in order. + +[lay out supports on sides] + +Attach supports to hexagonal sides with glue and or brads + +[attaching supports] + +Arrange the sides and use a ratchet strap to hold them together while the glue sets + +[Setting sides] + +Attach sides to tabletop. + +[Attach hexagonal sides to eachother] + +The last part is the attach the triangles via glue and/or brads. + +[attaching triangles] + +Using an electric sander at first, buff the entire shape, and then lightly hit the corners by hand. + +[picture of finishing corners] + +Use your choice of finish to seal. I went with a combination beezwax oil. + +[finished glamour shots] \ No newline at end of file diff --git a/_includes/about.md b/_includes/about.md new file mode 100644 index 0000000..acf6bff --- /dev/null +++ b/_includes/about.md @@ -0,0 +1,163 @@ +## bio + +Gabriel Dunne’s work represents his continuous investigations of visual, audible, and physical frequencies of natural and technological perceptual and imperceptible realities. His process is based on sound, space, still and moving visual image, architecture, installation, sculpture, and utilizes custom software and hardware systems and performance tools. He has show and performed at galleries and museums across the world, including NYMoMA, SIGGRAPH, Barcelona Festival Sonar, Interferenze Italia, and numerous publications. He is a San Francisco native. + +Since graduating Cum-Laude from UCLA's Design and Media Artts (DMA), he has worked as a visual effects supervisor, animator, graphic and code artist for Motion Theory, creating visual effects for award-wining music videos and commercials, receiving numerous AIGA, ACIP, and Type Directors awards. He later worked for Google and Stamen Design producing data visualizations, including Cabspotting with San Francisco based boutique Stamen Design which is featured in New York MOMA’s permanent collection. He's consulted for Obscura Digital, contributing to immersive, multi-sensory experiences for public space, environments, and installations. Starting in 2005, he was a partner in Tessellated Group, an engineering and design company, contributing to multiple invention patents in clean-tech structural manufacturing processes. He co-founded Oooshiny in 2007, a community and meetup for artists working with code, and later was a founding artist in residence at Gray Area Foundation for the Arts in 2007 where he created Seaquence, a collaborative music-creation project. He later participated as an Artist in Resident at Autodesk. In 2015 he Co-founded Okaynokay -- an R&D Lab with Ryan Alexander, focusing on custom tools, processes, and art experiments. + +## studio contact + +email: studio at gabrieldunne dot com + + +## network +[okaynokay](https://oknk.studio) +[twitter](http://twitter.com/gabrieldunne) +[instagram](http://instagram.com/gabrieldunne) +[flickr](http://flickr.com/photos/quilime) +[vimeo](http://vimeo.com/quilime) +[instructables](http://www.instructables.com/member/gabrieldunne/) +[blog](http://quilime.com) +[linkedin](http://www.linkedin.com/in/gabrieldunne) + +## c/v + +### bio +2015 Co-Founder/Partner, Okaynokay R&D Lab, CA USA +2015 Artist in Residence, Autodesk, CA USA +2014—2015 Creative Developer, Obscura Digital, CA SA +2013 Designer and Software Engineer, TEEM, CA USA +2010—2013 Youth Programming Instructor, Bay Area Video Coalition, CA USA +2009 Co-Founding Artist in Resident, Gray Area Foundation for the Arts, CA USA +2007—2009 Designer and Software Engineer, Stamen Design, CA USA +2007 Co-Founder, Oooshiny community and meetup for artists working with code +2007 Designer and Software Engineer, Google Inc, CA +2004—2006 Code Artist, Graphic Software Developer, VFX Supervisor, Motion Theory, CA USA +2004 Chief Design and Technology Officer, Tessellated Group, CA USA +2003 B.A., Design + Media Arts, UCLA, CA USA +2002 Experimental Print Design, Pont Avent School of Contemporary Art, France +1999 Fine Arts + Architecture, College of Marin, CA USA +1981 Born, San Francisco, CA USA + +### selected performance +2017 Soundwave (8) Infrastructure, w/Cullen Miller (Latency), CJM, SF CA +2017 IDP, Hyde St Studios, San Francisco, CA +2017 Night Rounds, w/Stephanie Sherriff, The Lab, San Francisco CA +2017 Ethereal Channels, w/Paul Clipson + Stephanie Sherriff, Emeryville CA +2017 DAN, DNA Lounge San Francisco, CA +2017 Empathetic Waves, w/Paul Clipson, ATA San Francisco +2016 Soundwave (7) Architecture, w/Stephanie Sherriff (Aestral Orient) +2016 Textures and Structures, Exploratorium, CA +2016 Textures and Structures, FINITE, San Francisco, CA +2016 Textures and Structures, Gray Area, San Francisco, CA +2014 CCRMA Modulations, Live Visuals, Palo Alto, CA +2013 ATOM TM, Live Visuals, San Francisco, CA +2012 UP Festival, Live Visuals, San Francisco, CA +2012 CCRMA Modulations, Live Visuals, San Francisco, CA +2011 Sepalcure, Shigeto, Simple, Santa. Live visuals. Gray Area, San Francisco, CA +2011 ICOSI, Milieux Sonores: Sound and Imaginary Space, GAFFTA, San Francisco, CA +2010 ICOSI, Biennial of the Americas. Denver, CO + +### selected exhibition +2018 Gray Area Festival, San Francisco, CA +2018 Ethereal Summit, New York, CA +2017 Loczi Design, San Fracisco, CA +2016 Activate Space, Loczi Design, San Francisco, CA +2016 "In Living Color", Loczi Design, San Francisco, CA +2015 NAAG XY, "NEAT: New Experiments in Art and Technology", Contemporary Jewish Museum, San Francisco CA +2015 NAAG, Mumbai, India +2015 Autodesk Pier9 Artist in Residence Show, San Francisco CA (Hyper Terra) +2014 Vatica Dahlia "Rites", San Francisco, CA +2013 Vatica Dahlia "Rites", Brooklyn, NY +2013 Tetra Field, 11/01 Codame #SENSES, San Francisco CA +2013 Stars, Supernova, David Bower Center, Berkeley CA +2013 Stars, Night Lights, SOMArts, San Francisco CA +2012 NAAG. Delhi, India +2010 Stars, Powers of 10, Gray Area, San Francisco, CA +2009 Seaquence, Gray Area, San Francisco CA +2008 Cabspotting, Stamen Design, "Design and the Elastic Mind", NYC MoMA (Permanent Collection). New York, NY +2006 Interferenze: Naturalis Electronica, Valle Caudina, Italy +2006 Festival Sonar, Barcelona, Spain +2005 :Output Festival, Amsterdam, Netherlands +2005 CiberArt: International Festival of New Technologies, Bilbao, Spain +2003 Sur(Face), UCLA, Los Angeles, CA +2003 Eyberrations Digital Film Festival, Irvine, CA +2002 Melbourne International Film Festival, Melbourne, Australia +2002 Experimental Works On Paper, Rennes, France +2002 Jaquez Gallery Collection, Pont Aven, France +2002 narr@tive: Digital Storytelling, Hammer Museum, Los Angeles +2002 "Monster", UCLA Student Show, Los Angeles, CA + +### residencies / collaborations +2018 Twilight Engines by Vishal K Dar (Okaynokay), San Francisco, CA +2014-2015 Artist in Residence, Autodesk, San Francisco, CA. +2011-2012 Studio Collaboration w/ Vishal K. Dar, New Delhi, India. +2009-2010 Artist in Residence, Gray Area Foundation for the Arts, San Francisco, CA. + +### teaching / talks / symposia +2017 Sculptural Screens Worksho, Stanford University, Guest Lecturer +2014 Gray Area Creative Code Fall Immersive: Projection Mapping, San Francisco, 3 day workshop, +2014 Gray Area Creative Code Summer Immersive: Projection Mapping, San Francisco, 3 day workshop, +2013 Procedural Animation w/Processing, Upload Festival, San Francisco, 4hr workshop +2012 Film/Code/Remix, BAVC, San Francisco, year-long youth program +2012 Processing, ACCU, Symantic, Palo Alto, 2hr demo/presentation +2012 Processing, ACCU Davis Linux Users Group, Davis, CA, 2hr demo/presentation +2011 Open Source: Creative Code. BAVC, San Francisco, year-long youth program +2011 Processing 101 Workshop, GAFFTA, San Francisco, 2-week course +2010 Open Source Programming. BAVC, San Francisco, year-long youth program +2010 Prototype: Resident Artist Symposium, GAFFTA, San Francisco, talk +2010 Creative Coding: Introduction to Processing, GAFFTA, San Francisco, weekend course +2009 Creative Coding: Introduction to Processing, GAFFTA, San Francisco, weekend course +2009 Introduction to Processing, GAFFTA, San Francisco, weekend course +2006 "Celestial Mechanics", Datavis Dome Projection. SIGGRAPH, Boston +2005 "Celestial Mechanics", Datavis Dome Projection. SIGGRAPH, Los Angeles +2007 Introduction to Processing. Makers Faire, San Mateo, 2-hour workshop +2005 Programming and Design, UCLA student workshops, Los Angeles, 1-day workshops +2004 Maya Student Workshop Series, UCLA, Los Angeles, weekly series +2003 Typography Workshop Series, UCLA, Los Angeles, 1-day workshop +2003 Software Workshop Series, Maya/Photoshop/Illustrator/After Effects. UCLA, Los Angeles +2002 Flash/Director Workshop Series, UCLA, Los Angeles, weekly series + +### awards / publications +2016 Push+Turn+Move, "Seaquence" Featurette +2005 Type Directors Award for Typography and Motion Graphics (Motiontheory) +2004 ACIP Award for Motion Graphics (Motiontheory) +2003 AIGA Award for Motion Graphics (Motiontheory) + +### clients / commercial & institutional affiliations +Autodesk +Obscura Digital +Stamen Design +Helios Interactive +Gray Area Foundation for the Arts +Tessellated Group +Motion Theory +NASA +FAA +Apple +Google +BAVC +Samsung + + + + + + diff --git a/_includes/archive-sort.html b/_includes/archive-sort.html new file mode 100644 index 0000000..b745d89 --- /dev/null +++ b/_includes/archive-sort.html @@ -0,0 +1,9 @@ +
+by: +{% if page.url == '/archive-d/' %} +date | category +{% else if page.url == '/archive-c/' %} +date | category +{% endif %} +
+ diff --git a/_includes/google-analytics.html b/_includes/google-analytics.html new file mode 100644 index 0000000..7726833 --- /dev/null +++ b/_includes/google-analytics.html @@ -0,0 +1,8 @@ + diff --git a/_includes/nav.html b/_includes/nav.html new file mode 100644 index 0000000..816f239 --- /dev/null +++ b/_includes/nav.html @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..158038b --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,23 @@ + + + + + + {{ site.name }} - {{ page.title }} + + + + + + + + {% include nav.html %} + +
+ {{ content }} +
+ + {% include google-analytics.html %} + + + \ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..ea19192 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,20 @@ +--- +layout: default +--- + +

{{ page.title }}

+

{{ page.date | date: "%Y" }}

+ +
+{{ content }} +
+ +
+ Back to Top +
+ \ No newline at end of file diff --git a/_layouts/print.html b/_layouts/print.html new file mode 100644 index 0000000..2013a98 --- /dev/null +++ b/_layouts/print.html @@ -0,0 +1,23 @@ + + + + + + {{ site.name }} - {{ page.title }} + + + + + + + + + +
+ {{ content }} +
+ + + \ No newline at end of file diff --git a/_plugins/flickr_set.rb b/_plugins/flickr_set.rb new file mode 100644 index 0000000..09d6bce --- /dev/null +++ b/_plugins/flickr_set.rb @@ -0,0 +1,117 @@ +# Flickr Set Tag. +# +# Generates image galleries from a Flickr set. +# +# Usage: +# +# {% flickr_set flickr_set_id %} +# +# Example: +# +# {% flickr_set 72157625102245887 %} +# +# Default Configuration (override in _config.yml): +# +# flickr_set: +# gallery_tag: 'p' +# gallery_class: 'gallery' +# a_href: nil +# a_target: '_blank' +# image_rel: '' +# image_size: 's' +# api_key: '' +# +# By default, thumbnails are linked to their corresponding Flickr page. +# If you override a_href with a size ('s', 'm', etc), the thumbnail will +# link to that size image. This is useful in combination with the image_rel +# parameter and a lightbox gallery. +# +# You must provide an API Key in order to query Flickr. It must be configured in _config.yml. +# +# Author: Thomas Mango +# Site: http://thomasmango.com +# Plugin Source: http://github.com/tsmango/jekyll_flickr_set_tag +# Site Source: http://github.com/tsmango/thomasmango.com +# Plugin License: MIT + +require 'net/https' +require 'uri' +require 'json' + +module Jekyll + class FlickrSetTag < Liquid::Tag + def initialize(tag_name, config, token) + super + + @set = config.strip + + @config = Jekyll.configuration({})['flickr_set'] || {} + + @config['gallery_tag'] ||= 'p' + @config['gallery_class'] ||= 'gallery' + @config['a_href'] ||= nil + @config['a_target'] ||= '_blank' + @config['image_rel'] ||= '' + @config['image_size'] ||= 's' + @config['api_key'] ||= '' + end + + def render(context) + html = "<#{@config['gallery_tag']} class=\"#{@config['gallery_class']}\">" + + photos.each do |photo| + html << "" + html << " " + html << "" + end + + html << "" + + return html + end + + def photos + @photos = Array.new + + JSON.parse(json)['photoset']['photo'].each do |item| + @photos << FlickrPhoto.new(item['title'], item['id'], item['secret'], item['server'], item['farm'], @config['image_size']) + end + + @photos.sort + end + + def json + uri = URI.parse("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&photoset_id=#{@set}&api_key=#{@config['api_key']}&format=json&nojsoncallback=1") + http = Net::HTTP.new(uri.host, uri.port) + return http.request(Net::HTTP::Get.new(uri.request_uri)).body + end + end + + class FlickrPhoto + + def initialize(title, id, secret, server, farm, thumbnail_size) + @title = title + @url = "http://farm#{farm}.staticflickr.com/#{server}/#{id}_#{secret}.jpg" + @thumbnail_url = url.gsub(/\.jpg/i, "_#{thumbnail_size}.jpg") + @thumbnail_size = thumbnail_size + end + + def title + return @title + end + + def url(size_override = nil) + return (size_override ? @thumbnail_url.gsub(/_#{@thumbnail_size}.jpg/i, "_#{size_override}.jpg") : @url) + end + + def thumbnail_url + return @thumbnail_url + end + + def <=>(photo) + @title <=> photo.title + end + end +end + +Liquid::Template.register_tag('flickr_set', Jekyll::FlickrSetTag) diff --git a/_posts/notes/2007-08-03-sf-shadows.md b/_posts/notes/2007-08-03-sf-shadows.md new file mode 100644 index 0000000..cf2b2fd --- /dev/null +++ b/_posts/notes/2007-08-03-sf-shadows.md @@ -0,0 +1,38 @@ +--- +layout: post +title: City Sun Path +date: 2006-05-05 +categories: article +--- + +Digital City Concept Proposal +SUN/SHADE MAP + +Concept +-- +An interactive map concept that uses the San Francisco Digital City 3D model to search for directions in the city, and lets the user know how much sunlight or shade they receive during their travel. Depending on time of day, certain streets (especially streets downtown near high buildings) will only have direct sunlight on the street level during mid day, while neighborhoods with shorter buildings (such as the Mission or the Sunset) will have much more direct sunlight. Light can change depending on both the hills of SF and structures such as buildings, bridges, and tunnels. Users would also be able to select a specific area of the city or neighborhood, and see the shade/sun on all streets in that area depending on current time. There is a subtle irony in the concept due to the foggy nature of San Francisco -- days with direct sunlight with no fog or clouds are rare and treasured. + +Result +-- +There is a wealth of information to be gathered by sun and shade calculations, and it would be interesting for us to see which parts of the city get the most sun and shade during the entire year. They would be able to view the result as an interactive Google Map, a 3D image, a sequence of stills, or an animation of shadows. It would also be interesting to be able to download a screensaver that shows all the shadows in the city for the current time of day. Unfortunately the map does not take fog or clouds into account. It will be up to the user to look outside and determine if it's actually a sunny day. + +Technical +-- +Calculations of shade and direct sunlight would be based on time of day and the season, which users can change when searching. The route will be drawn as a line that changes between two colors. One color signifies sunlight, while another color signifies shade. The route will be created with Google Maps, so users will have the ability to drag and modify the suggested route depending if they want a route with more shade, or more sun. The light ratio will update as you drag the route around the city. Also, a calculation of "time travelled" will have to be included to determine how the shade will change by the time you actually reach your destination. + +Many larger streets, such as Market st or Van Ness have the possibility of sun on only one side of the street. The map would take this into consideration, and render the route in that area as two stripes side by side, showing which side is sunny. + +Animations of timelaps, movies, stills, RSS feeds, and illustrations of sunlight and shade movement would be incorporated into the map results. Because of the extremely detailed 3D map of SF, the resulting route could be rendered in 3D with realistic computer generated shadows, in addition to the traditional Google Map. Because sunlight and shade loops throughout a full year, the sunlight/shade data can be pre-calculated for all 365 days throughout the entire year and stored on our server. This means the main calculation being done per user is to test if a path moves through a sunny part of the city. + +This map could be a useful tool to visualize how new construction projects (such as the proposed Transbay Terminal) in San Francisco would effect shade in the city. As SF's skyline changes, so does the amount of shade being cast on the sidewalk. + + +![](/m/sfshadows/downtownParcelCoded.png) +![](/m/sfshadows/downtownAerial.jpg) +![](/m/sfshadows/downtownParcelCodedPersp.png) +![](/m/sfshadows/downtownPersp.jpg) + + + + + diff --git a/_posts/notes/2009-04-12-triangles.md b/_posts/notes/2009-04-12-triangles.md new file mode 100755 index 0000000..2038a33 --- /dev/null +++ b/_posts/notes/2009-04-12-triangles.md @@ -0,0 +1,15 @@ +--- +layout: post +title: "Triangles" +date: 2009-04-13 +categories: blog +thumb: /m/triangles/thumb.png +--- + +![]({{site.baseurl}}/m/triangles/triangles.jpg) +Site Specific. Hand-broken wooden sticks. + +Created w/ Ryan Alexander. Alpine Lake, California. + +![]({{site.baseurl}}/m/triangles/3440466072_f2f766bbbb.jpg) + diff --git a/_posts/notes/2014-04-23-gh-td.md b/_posts/notes/2014-04-23-gh-td.md new file mode 100644 index 0000000..7b8862f --- /dev/null +++ b/_posts/notes/2014-04-23-gh-td.md @@ -0,0 +1,30 @@ +--- +layout: post +title: "GH -> TD" +date: 2014-04-23 +categories: tool +thumb: /m/gh-td/thumb.png +--- + +## Abstract + +A proof-of-concept collection of patches that shares polygon mesh geometry from Grasshopper to TouchDesigner in realtime via OSC. The ability to share mesh data between Grasshopper and TouchDesigner allows for a streamlined workflow when projection-mapping geometry. It eliminates a mesh export/import step, and doesn't rely on TouchDesigner's mesh editing tools. It streamlines the process of fabricating objects, as it closely links the fabrication process of the form to the projection mapping process. Grasshopper, a parametric geometry environment, allows for great control over the verticies, planes, and normals of a 3D mesh, which gets sent to the TouchDesigner graphics environment. Any changes to a mesh done in Grasshopper translates to TouchDesigner in real time. This is a proof of concept and unoptomized for large meshes. + +### Software +- [Rhino3D](http://rhino3d.com) +- [Grasshopper3D](http://www.grasshopper3d.com/) + - [gHowl](http://www.grasshopper3d.com/group/ghowl) + - [GhPython](http://www.food4rhino.com/project/ghpython) +- [TouchDesigner](https://www.derivative.ca/) + + +### Screenshots + +#### Rhino/Grasshopper +![](https://raw.githubusercontent.com/quilime/gh-td/master/screenshots/sender_gh.PNG) + +#### TouchDesigner +![](https://raw.githubusercontent.com/quilime/gh-td/master/screenshots/receive_01.PNG) + +### Source +[https://github.com/quilime/gh-td](https://github.com/quilime/gh-td) diff --git a/_posts/notes/2014-05-08-phi.md b/_posts/notes/2014-05-08-phi.md new file mode 100644 index 0000000..1beb823 --- /dev/null +++ b/_posts/notes/2014-05-08-phi.md @@ -0,0 +1,126 @@ +--- +layout: post +title: "Phi" +date: 2014-05-06 +categories: article +author: Gabriel Dunne +thumb: /m/phi/thumb.png +bg : #fff +--- + +Article written during an artist residency at Autodesk/Pier9. Originall published on Instructables.com, as part of a series of generative form and fabrication projects. + +

+ +# Phi and The Golden Proportion + +The process of creation typically does not depend on a singular methodology when generating, perceiving and manipulating a form. Of the many ways to make a "thing", the observation and incorporation of natural phenomena is commonly used. However, in the process of observing and taking creative cues from the universe, one finds an enormous variety of phenomena to chose from. The beauty, order and variety in nature is readily visible. The golden proportion, or golden ratio is a classic pattern you've most likely seen that occurs in nature and demonstrates very interesting commonalities and relationships between various areas of physical, biological worlds. At its simpliest, it is a mathematical relationship between two quantities. By definition, two quantities are in the golden proportion if their ratio is the same as the ratio of their sum to the larger of the two quantities. + +> the ratio of **A** + **B** + is to **A** as + **A** is to **B** + +In math, the ratio is commonly referred to as the greek letter Phi , As a decimal, it is represented as 1.6180339887498948482... It is an irrational number, ie, has an infinite number of decimal places that never repeat, like *e* or *PI*. + +The proportion is useful in the description of symmetry, as well as descriptions of polyhedra and polygons, as the ratio appears as a fundamental building block to base geometric solids. Mathematicians, designers and artists throughout history have studied the properties of the golden ratio, including its appearance in the dimensions of a regular pentagon and the golden rectangle, which can be cut into a square and a smaller rectangle with the same aspect ratio. The golden ratio has also been used to analyze the proportions of natural objects as well as man-made systems. + +This article documents some distinct methods I've found for deriving the ratio with geometry. If you know of others, please comment and I'll add them. + +Required Materials for doing it by hand + +Compass +Straightedge +Marking Tool +Paper +With a computer, you can use any drawing program that can do lines and arcs. Snapping helps as well. + + +## The Golden Rectangle +![]({{site.baseurl}}/m/phi/gr_01.PNG) + +Possibly the most common and widely used method to find the golden ratio is within the golden rectangle. The ratio of the short side of the rectangle to the long side is Phi. This is commonly seen when describing the Fibonacci sequence as a series of golden rectangles embedded within each other. + + 1. Draw a square that has sides that are 1 unit long + 2. Place a compass point at 1/2 of the bottom side of the square + 3. Rotate the compass clockwise it is on the same horizontal plane as the base of the square. + 4. Where there compass arc and the base of the rectangle meet is Phi + + +## Single Known Length +![]({{site.baseurl}}/m/phi/gr_02.PNG) + +The simplest way to find Phi that I know of is not the traditional Golden Rectangle method. We can actually derive Phi from a single known length. In this method, we have a line that has a known length, in this case it has a length of 1. + + 1. Align the known length vertically (A) + 2. Align another line of the same length to one end to the midpoint of the vertical length, and the other end to the horizontal plane. (B) + 3. With a third duplicate length, align one end to the midpoint of the second length, and then other end to the horizontal plane. (G) + 4. The ratio of (AB) to (AG) is Phi + 5. + + +## Triangle in a Circle +![]({{site.baseurl}}/m/phi/gr_03.PNG) + +We can find the golden ratio when inscribing a triangle inside a circle. This step assumes you can draw a perfect equilateral triangle within a circle. There are a few ways to draw a triangle without a computer or other devices that I listed in the requirements, such as this article on drawing an Equilateral Triangle + + 1. Draw a circle. + 2. Align an equilateral triangle so it fits within the circle bounds. + 3. Draw a horizontal line that starts from the 1/2 point of the left edge of the triangle (A) + 4. Continue the line to the other side of the triangle (B) until it intersects with the edge of the circle (G) + + +## Square in a Circle +![]({{site.baseurl}}/m/phi/gr_04.PNG) + +The square-in-circle method is similar to the triangle, and related. It's interesting to see the pattern and relationships between these shapes emerge. + + 1. Draw a circle + 2. Divide the circle in half with a horizontal line + 3. Draw a square that rests on the horizontal line, and is scaled vertically so its two top corners intersect the edge of the circle. + 4. The length one side of the square (AB) to the distance to the right or left edge of the circumference of the circle (AG) is Phi + +## Pentagon in a Circle +![]({{site.baseurl}}/m/phi/gr_05.PNG) + +The pentagon in a circle method is similar to triangle and square. + + 1. Draw a circle + 2. Within the bounds of the circle, draw a pentagon, and intersect the vertices with the edge of the circle. + 3. Draw two lines that emanate from the bottom vertices of the pentagon, and intersect at the top vertex of the pentagon. + 4. Draw a horizontal line from the leftmost vertex (A) of the pentagon to the rightmost vertex (B) of the pentagon. + 5. The ratio of (AB) to (AG) is Phi + +## Pentagon in a Circle 2 +![]({{site.baseurl}}/m/phi/gr_06.PNG) + +If you've already inscribed a pentagon in a circle, the ratio actually exists in another measurable place. + + 1. Connect all the vertices into a 5 pointed star. + 2. If the edge of the pentagon is 1, then the length of the connecting star lines in Phi + 3. Additionally, the length of the smaller lines within the star are also related. They are 1 / Phi + +## 1/2 Square +![]({{site.baseurl}}/m/phi/gr_07.PNG) + +The 1/2 square method + + 1. Draw a side of a rectangle with length 1 on the horizontal, and a height of 1/2 on the vertical. + 2. Draw a diagonal line within the rectangle (xy) + 3. Place your compass point at (y) and set it to length (yz) + 4. Inscribe an arc until it intersects with the diagonal line. (w) + 5. Place your compass point at (x) and set it to length (xw) + 6. Inscribe an arc that starts at (w), and intersects with the bottom of the rectangle (u) + 7. (xu) is 1/Phi + +## Conclusion + +Below are the following reference files for all methods as AI, DXF, Solidworks, and PDF + + - [golden.ai]({{site.baseurl}}/m/phi/golden.ai) + - [golden.dxf]({{site.baseurl}}/m/phi/golden.DXF) + - [golden.pdf]({{site.baseurl}}/m/phi/golden.pdf) + - [golden.slddrw]({{site.baseurl}}/m/phi/golden.SLDDRW) + + +Also posted on [instructables.com](http://www.instructables.com/id/The-Golden-Proportion/) + diff --git a/_posts/notes/2015-12-08-st.md b/_posts/notes/2015-12-08-st.md new file mode 100644 index 0000000..89ed71c --- /dev/null +++ b/_posts/notes/2015-12-08-st.md @@ -0,0 +1,16 @@ +--- +layout: post +title: clean studio +date: 2015-12-08 +categories: blog +--- + +![]({{site.baseurl}}/m/blog/studio-clean-dec8.png) + +Newly painted studio floors. Feels like a million bucks. It will never be this clean again! + +![]({{site.baseurl}}/m/blog/studio-clean2-dec8.png) + +![]({{site.baseurl}}/m/blog/studio-clean3-dec8.png) + + diff --git a/_posts/notes/2015-12-25-tri.md b/_posts/notes/2015-12-25-tri.md new file mode 100644 index 0000000..1aa2ee3 --- /dev/null +++ b/_posts/notes/2015-12-25-tri.md @@ -0,0 +1,10 @@ +--- +layout: post +title: fur tri +date: 2015-12-25 +categories: blog +--- + +![tri]({{site.baseurl}}/m/blog/padauk-tri.png) + +A tri w/padauk frame. About 11" side. A christmas gift for my dad. diff --git a/_posts/notes/2015-12-30-17-10-37.md b/_posts/notes/2015-12-30-17-10-37.md new file mode 100644 index 0000000..52192bb --- /dev/null +++ b/_posts/notes/2015-12-30-17-10-37.md @@ -0,0 +1,40 @@ +--- +layout: post +title: studio w/ss +date: 2015-12-30-17-11-32 +categories: blog +--- + +Ok trying to make an effort to write and post more. I feels fleeting to push content directly to social media networks and cloud services, so I hope to I use this site as a home for images and writings. It's tricky to catalog everything if it's diseminated across various platforms. + +Today, [Stephanie](http://ssherriff.com) started her fabrication for her upcoming show at Incline Gallery in SF. She's building many wooden frames which will have soil in them, and mounted to the wall. Wheatgrass will grow out of them. I'm assisting in fabricating the frames today, and whatever else I can help with. + +![studio light]({{site.baseurl}}/m/blog/pilapse4.png) + + +Setting up timelapse in the studio after having MWM and Will producing their pieces here over the last few weeks. I'm experimenting with a Rasbperry Pi connected to my Canon Rebel XT 350D. This is an old beater camera, this body and lense has been around the world, including burning man a few times, and the lense is really gunked up. As I turn the focus ring, it's reminscent of grinding sand. + +![studio light]({{site.baseurl}}/m/blog/pilapse3.png) + + +Still working on an auto-exposure method, as the light in the studio changes dramatically over the day. + +![studio light]({{site.baseurl}}/m/blog/pilapse1.png) + +I have an AC adapter for both the Pi and the Canon, and I'm using [gphoto2](http://www.gphoto.org/proj/gphoto2/) on the pi. + + +The photos fill up the Pi's SD card pretty quick, it's a 16 gig card, and I haven't yet made a fancy script to automatically download them to another server, and blah blah blah. I was rsyncing them to my laptop, and tried to be fancy and delete the files I've already copied. So I typed `rm -rf` with a wildcard `*`, but got a little too greedy with the wildcard and deleted the whole day of production. + +Ouch. Hurts. + +Now researching file recovery... + +Otherwise, the Pi-timelapse rig is pretty great. I'm going to get a few camera nodes going, it will be great to have timelapse of the space. Watching the light (both moon and sun) is beautiful. + +![studio light]({{site.baseurl}}/m/blog/studio.png) + +Looking forward to a productive 2016!! + +-gd + diff --git a/_posts/projects/2005-01-01-tessellated-logo.md b/_posts/projects/2005-01-01-tessellated-logo.md new file mode 100755 index 0000000..a7a4d78 --- /dev/null +++ b/_posts/projects/2005-01-01-tessellated-logo.md @@ -0,0 +1,12 @@ +--- +layout: post +title: "Tessellated Group Identity Design" +date: 2005-01-01 +categories: design +--- + +![](http://portfolio.quilime.com/2008/tessellated/tessellated_booth_comp.jpg) + +Tessellated Group + +*identity design, installation design* diff --git a/_posts/projects/2006-05-03-slashysans.md b/_posts/projects/2006-05-03-slashysans.md new file mode 100644 index 0000000..95e9e4b --- /dev/null +++ b/_posts/projects/2006-05-03-slashysans.md @@ -0,0 +1,12 @@ +--- +layout: post +title: Slashy Sans +date: 2006-05-05 +categories: design +--- + +Typeface/Font Design + + + +ttf \ No newline at end of file diff --git a/_posts/projects/2006-05-05-celestialmechanics.md b/_posts/projects/2006-05-05-celestialmechanics.md new file mode 100755 index 0000000..4bcc416 --- /dev/null +++ b/_posts/projects/2006-05-05-celestialmechanics.md @@ -0,0 +1,87 @@ +--- +layout: post +title: "Celestial Mechanics" +date: 2006-05-05 +categories: project +thumb: /m/cm/thumb.png +--- + +![]({{site.baseurl}}/m/cm/celestialmechanics_satring_sm.jpg) + +Animation for Planetarium Dome, 30min +By D. Scott Hessels and Gabriel L. Dunne + +Celestial Mechanics is a planetarium-based artwork installation that visualizes the statistics, data, and protocols of manmade aerial technologies -- a graphic display of the paths and functions of the machines hovering, flying, and drifting above our planet. The sky is filled with aircraft that transport people from place to place, perform utilitarian duties, assist in communications, enact military missions, or wander above us as debris. Celestial Mechanics combines science, statistical display, and contemporary art by presenting these mechanical patterns and behaviors as a celestial mythology. The artwork is intended to be viewed in a planetarium dome, and as time permits the authors, it is updated. + +[Website](http://cmlab.com/) + +## Statement + +At any given moment, there can be over 30,000 manmade objects in the sky above us: Planes, helicopters, satellites, weather balloons, space debris, and other diverse technologies. They watch, they guide, they protect, they communicate, they transport, they predict, they look out into the stars. In less than 100 years, the deep blue has become a complex web of machinery. + +Our lives are closely tied to these networks in the sky, but a disjunction has occurred between us and the aerial technologies we use every day. We rarely consider the hulking, physical machines that have now become core to our lifestyle. By not being aware of the hardware we use every day, we may also not be aware of the social, economic, cultural, and political importance of these technologies. By visualizing them, it may lead to a better understanding of the forces that are shaping our future. + +However, our understanding of this mechanical chaos is so closely tied to the scale of it all - beyond global - that visualization proves limiting. Computers can now collect massive amounts of data, but our display systems are struggling to keep up. Scale is part of information, yet we continue to reduce and enlarge everything in our increasingly well-documented world to small resolutions. Our glowing screens cannot present any of the phenomenology of the data... that awe that scale inspires. Planetariums give us a way to visualize a complex system without losing the emotion of the data. Scale creates wonder, and we should not separate our feelings from the statistics... they help us understand them. + + + + + +![]({{site.baseurl}}/m/cm/1cm_interior.jpg) + +![]({{site.baseurl}}/m/cm/2cm_interior2.jpg) + +![]({{site.baseurl}}/m/cm/celestialmechanics_lafd2_sm.png) + +![]({{site.baseurl}}/m/cm/3mfa_cmech_int_lafd.jpg) + +![]({{site.baseurl}}/m/cm/cm-geostatring.png) +Geostationary Satelites + +![]({{site.baseurl}}/m/cm/cm-flightpatterns.png) +Airline Flight Patterns + +Aaron Koblin's "Flight Patterns" and all its various forms and iterations was derived from the 2005 copyrighted artwork "Celestial Mechanics" created by Scott Hessels and Gabriel Dunne. + +- [http://www.aaronkoblin.com/work/flightpatterns/index.html](http://www.aaronkoblin.com/work/flightpatterns/index.html) +- [http://users.design.ucla.edu/~akoblin/work/faa/](http://users.design.ucla.edu/~akoblin/work/faa/) + +![]({{site.baseurl}}/m/cm/cm-gps.png) +GPS Satelites + +![]({{site.baseurl}}/m/cm/cm_mfa.png) +Installation for UCLA MFA Show + +![]({{site.baseurl}}/m/cm/cm_sigg.png) +Installation for SIGGRAPH NVidia Dome + + +## Credits + +### Created By +D. Scott Hessels +Gabriel Dunne + +### Animation +Gabriel Dunne +Eric Keller +Aaron Koblin +Christopher McKee +Jarrett Quon + +### Sound Design +Christopher Barnett + +### Poster Design +Matthew Goldman + +### Thanks To +UCLA Design | Media Arts +Evans and Sutherland +NASA +The Federal Aviation Administration +Glendale Community College Planetarium +The Griffith Observatory +RLM Software and FlightView Data +The Elumenati, LLC +Aircraft Data derived from FlightView data of RLM Software © 2005 All Rights Reserved diff --git a/_posts/projects/2006-05-05-footagefold.md b/_posts/projects/2006-05-05-footagefold.md new file mode 100755 index 0000000..2084464 --- /dev/null +++ b/_posts/projects/2006-05-05-footagefold.md @@ -0,0 +1,81 @@ +--- +layout: post +title: "Footage Fold" +date: 05-05-2005 +categories: project +thumb: /m/footagefold/thumb.png +--- + + + +A CGI + motion-control visual effect that creates the illusion of an environment folding into itself like a popup book. Created with Motion Theory, Los Angeles. + + + +## "It Consolidates" + +The effect was developed for a single scene in a Hewllet Packard commercial "It Consolidates". A messy office appears to fold up like a pop-up book. + +Role: Visual Effect Designer, Animation + +![]({{site.baseurl}}/m/footagefold/4-hpfinish.jpg) +![]({{site.baseurl}}/m/footagefold/output_qAEMIQ.gif) + + + + + + + +## Beck "Girl" + +Role: Asst. Visual Effects Director, Rigging, Animation + +The music video for Beck's "Girl" featured entire scenes folding up like a popup book, transforming their meaning an resulting in visual ironies throughout the story. The music video is an homage to Al Jaffee's "Fold In" art at the back of the classic *MAD* Magazine, + +![]({{site.baseurl}}/m/footagefold/fold_2.png) +![]({{site.baseurl}}/m/footagefold/fold_1.png) + +![]({{site.baseurl}}/m/footagefold/3-bottles_01.jpg) +Foldong shelves in pharmacy with physically simulated bottle falling animation + + +![]({{site.baseurl}}/m/footagefold/aljaffee.png) +![]({{site.baseurl}}/m/footagefold/output_OtH9Fq.gif) +Living Room fold scene, featured on television with Al Jaffee "commercial" gag + +![]({{site.baseurl}}/m/footagefold/pinatas-plate.png) +Pinatas scene clean plate + +![]({{site.baseurl}}/m/footagefold/pinatas-render.png) +Pinatas scene render plate + +![]({{site.baseurl}}/m/footagefold/map.png) +![]({{site.baseurl}}/m/footagefold/map-telecine.png) +Graphic Design for "folding map" gag + +Copyright © 2005 Motion Theory + + + + + +More via Motion Theory: [1](http://www.motiontheory.com/content/362/beck_girl), [2](http://www.motiontheory.com/press/#mad_beck-goes-mad), [3](http://www.motiontheory.com/content/352/hp_it-consolidates) + + + +## Fold Tests, Contepts, and Sketches + +![]({{site.baseurl}}/m/footagefold/7-44.jpg) +![]({{site.baseurl}}/m/footagefold/6-32.jpg) +![]({{site.baseurl}}/m/footagefold/5-23.jpg) + +![]({{site.baseurl}}/m/footagefold/fold_reference.jpg) +four-way fold concept art + +![]({{site.baseurl}}/m/footagefold/chessfold.png) +four-way fold concept art + + + + diff --git a/_posts/projects/2008-07-05-cabspotting.md b/_posts/projects/2008-07-05-cabspotting.md new file mode 100755 index 0000000..341fd62 --- /dev/null +++ b/_posts/projects/2008-07-05-cabspotting.md @@ -0,0 +1,22 @@ +--- +title: Cabspotting +date: 2008-07-05 +categories: project +layout: post +thumb: /m/cabspotting/thumb.png +--- + + + +San Francisco Taxi-Cab Visualization + +Scott Snibbe, Amy Balkin, Eric Rodenbeck, Michal Migurski, Shawn Allen, Tomas Apodeca, Gabriel Dunne, Stamen Design + +[Cabspotting](http://stamen.com/clients/cabspotting) +[Cabspotting in MoMA](http://content.stamen.com/cabspotting_in_moma_design_and_the_elastic_mind) + +![]({{site.baseurl}}/m/cabspotting/gabe - cabs_03.png) +Cab Trails + +![]({{site.baseurl}}/m/cabspotting/Picture 5.png) +Development Screenshot diff --git a/_posts/projects/2009-04-08-mekstension.md b/_posts/projects/2009-04-08-mekstension.md new file mode 100755 index 0000000..b1cae37 --- /dev/null +++ b/_posts/projects/2009-04-08-mekstension.md @@ -0,0 +1,68 @@ +--- +layout: post +title: Mekstension +date: 2009-04-08 +categories: project +client: Mekanism +thumb: /m/mekstension/thumb.png +--- + +![]({{site.baseurl}}/m/mekstension/3423610002_7d387b5a0f_o.png) + +Animation software created with Processing. + +## MEKSTENSION - (c) Gabriel Dunne 2009 +### Abstract + +Visual Software to be used stop animation animation tool. +Software allows an animator to extends geometric objects into space and modify their parameters. +Animation optomised for a display resolution of 2560 x 1600 + +![]({{site.baseurl}}/m/mekstension/mek_01.jpg) +![]({{site.baseurl}}/m/mekstension/DSC_0064.JPG) +![]({{site.baseurl}}/m/mekstension/mek_02.jpg) +![]({{site.baseurl}}/m/mekstension/mek_03.jpg) + +Created at Mekanism for a lofi/hifi stop-motion opener for CAT 2011 conference. + +### Design Document + + init shapes + square + triangle + circle + + variables + depth + line thickness + solid / wire + edge color + dotted lines + points (no lines) + + interface + translate + direction + rotation + scale + depth + direction ( degrees ) + length ( float ) + strokeWeight ( float ) + fillColor ( uint ) + strokeColor ( uint ) + + global + color (front, back) + stroke color + transparency + stroke transparency + segments + camera view angle + +[App (OSX)](http://media.quilime.com/?p=projects/mek/) +[Source Code](http://git.quilime.com/?p=mekstension.git;a=snapshot;h=87a478fac273bb21ded6ce14a3f9a09738c9629e;sf=tgz) + +### Press +[Creativity Magazine](http://creativity-online.com/work/view?seed=c41af0da) +[Behind The Work: Cat Opening Animation](http://creativity-online.com/?action=news:article&newsId=136914§ionId=cat:_creativity_and_technology) diff --git a/_posts/projects/2009-08-09-bayareatrans.md b/_posts/projects/2009-08-09-bayareatrans.md new file mode 100755 index 0000000..4f97189 --- /dev/null +++ b/_posts/projects/2009-08-09-bayareatrans.md @@ -0,0 +1,29 @@ +--- +layout: post +title: "Bay Area Transit" +date: 2009-08-09 +categories: project +thumb: /m/bayareatransit/thumb.png +--- + +![]({{site.baseurl}}/m/bayareatransit/baytransproposal.png) +Proposal Rendering. Image Copyright (c) 2009 Stamen Design + +Interactive Software developed by Gabriel Dunne with Stamen and SOM Architects for a conceptual route-map display proposal for the San Francisco Transbay Terminal project. Bay Area transit visualizations show public transit on an interactive map created from transit stations. Each route is a represented as its geographic path, the height of the shape representing time. Early morning routes are closer to the map base getting later in the day the higher they rise. Bart routes are colored blue, SFMTA/MUNI routes are colored in red. + +More on [Stamen.com](http://content.stamen.com/som_transbay_tower) + +![]({{site.baseurl}}/m/bayareatransit/muni_route22.png) + +![]({{site.baseurl}}/m/bayareatransit/bart_eastbay_sf.png) +BART Dub/Ples Train + +![]({{site.baseurl}}/m/bayareatransit/some_muni_and_bart.png) +MUNI + BART Overlay + +![]({{site.baseurl}}/m/bayareatransit/stop_frequency_bay_area.png) +Bay Area Muni and Bart Transit Stop Frequency + +![]({{site.baseurl}}/m/bayareatransit/stop_frequency_sf.png) +SF Muni Stop Frequency + diff --git a/_posts/projects/2010-10-04-seaquence.md b/_posts/projects/2010-10-04-seaquence.md new file mode 100755 index 0000000..c8cbeee --- /dev/null +++ b/_posts/projects/2010-10-04-seaquence.md @@ -0,0 +1,28 @@ +--- +layout: post +title: "Seaquence" +categories: project featured +date: 2010-10-04 +excerpt: software music toy +thumb: /m/seaquence/thumb2.png +--- + +![]({{site.baseurl}}/m/seaquence/Screen Shot 2013-06-30 at 4.12.05 PM.png) + +A biologically inspired sound toy + +In collaboration with Ryan Alexander and Daniel Massey. + +Lives at [seaquence.org](http://seaquence.org) + +Built with Flash/AS3 + +![]({{site.baseurl}}/m/seaquence/Screen Shot 2013-06-30 at 4.11.56 PM.png) + +![]({{site.baseurl}}/m/seaquence/2010-02-20 18.44.19.jpg) +Installation at Gray Area, San Francisco, 2010 + + +![]({{site.baseurl}}/m/seaquence/4165032830_82ae9c9e6c_o.jpg) +Monome-inspired hardware Step-Seaquencer Controller, ie, the "Seanome" + diff --git a/_posts/projects/2012-04-03-audioshadertoy.md b/_posts/projects/2012-04-03-audioshadertoy.md new file mode 100755 index 0000000..e84848b --- /dev/null +++ b/_posts/projects/2012-04-03-audioshadertoy.md @@ -0,0 +1,36 @@ +--- +layout: post +title: "Audio-ShaderToy" +date: 2012-04-03 +categories: project featured +thumb: "/m/audioshadertoy/thumb.png" +excerpt: live-coding WebGL/GLSL shader editor with audio-spectrum data +--- + +![]({{ site.url }}/m/audioshadertoy/IMG_3523-sm.jpg) + +Live-coding GLSL editor with audio spectrum data for creating audio-reactive shaders in WebGL. Coded numbers in the shader become converted into performance sliders as they are typed, allowing any variable to be performed. Live audio data is made avaiable as a variable to affect visuals. + +### created by +Ryan Alexander, Reza Ali, Gabriel Dunne + +Source on [Github](https://github.com/quilime/audio-shadertoy/). + + +### exhibition + +Audio Shader-Toy at [Creators Project SF](http://thecreatorsproject.vice.com/zh-fr/videos/art-hack-weekend-san-francisco-2012) + + + +### performance + + +Live-coded visuals for Chris Carlson by Gabriel Dunne. + + +### screenshot + +![](/m/audioshadertoy/quasi.png) + + diff --git a/_posts/projects/2012-12-20-naag.md b/_posts/projects/2012-12-20-naag.md new file mode 100755 index 0000000..fb8ca11 --- /dev/null +++ b/_posts/projects/2012-12-20-naag.md @@ -0,0 +1,41 @@ +--- +title: NAAG Mehrauli +layout: post +date: 2012-12-20 +tags: collab +categories: project featured +excerpt: projection-mapped sculpture +thumb: /m/naag/thumb.png +--- + + +![]({{ site.baseurl}}/m/naag/1projection.jpg) +site-specific projection sculpture +concrete, plaster, multiuple projectors, computer, custom software +12' x 3.5' x 3.5' +2 channel projection +Site Specific, New Dehli +In collaboration with [Vishal K. Dar](http://vishalkdar.com/) + +## Release - New Delhi, 2012 + +> When artists, Vishal K Dar and Gabriel L Dunne, presented their work in a small space in Mehrauli, on the fringe of the community’s development, the children of this neighborhood had immediately made up their minds about the creature's true nature and the reasons for its appearance. To them it was a wish fulfilling sea-serpent, silent and evocative, which had found abode in this unused space to hibernate during the cold winter months of Delhi. + +> Interestingly, we found how myths originate in such communities that are untouched by contemporary art and technology. Their chancing upon an object that is beyond comprehension, allows them to put their faith in notions of folk-lore and myth making. + +> Vishal K Dar / Gabriel L Dunne wanted to challenge the notion of sculpture as a static object. Their organic sculptural form has its roots in CAD software and is further skinned with a generative algorithm. Different parts of the sculpture move differently, as if a form had coiled onto itself. The viewer is liberated since the sculpture does not rely on prescribed grammar and the experience helps resolve a paradigm shift in our viewing registers. + +> The sculptural form wraps itself around an existing architectural column. The surface texture is similar in material and color to that of the existing walls. During the day it appears to be sedentary, but after sun down, the surface starts to glimmer and move. The projected animations are mapped onto the surface from two positions, covering a 360 degree viewing angle. The projections move in tandem with the surface segments, creating a mesmerizing rhythm. + +![]({{site.url}}/m/naag/6912807653_222b2402db_z.jpg) +![]({{site.url}}/m/naag/001_a6912865397_51b2dfd5f5_z.jpg) +![]({{site.url}}/m/naag/3IMG_2229-3.jpg) + + + + + + + +[Mehrauli](en.wikipedia.org/wiki/Mehrauli), South-West district of Delhi + diff --git a/_posts/projects/2013-08-30-vaticadahlia.md b/_posts/projects/2013-08-30-vaticadahlia.md new file mode 100755 index 0000000..61a5746 --- /dev/null +++ b/_posts/projects/2013-08-30-vaticadahlia.md @@ -0,0 +1,39 @@ +--- +layout: post +title: "Vatica Dahlia" +date: 2013-08-30 +categories: featured project +tags: collab +thumb: "/m/vaticadahlia/thumb2.png" +excerpt: sculpture and visuals for live performance +--- + +![]({{site.base_url}}/m/vaticadahlia/IMG_7064.JPG) +![](http://farm3.staticflickr.com/2807/9764237505_233e33bb60_c.jpg) + + + +procedurally designed sculpture for live performance +8' x 8' x 3' +red oak, polycarbonate screens, rhino/grasshopper + +![]({{site.base_url}}/m/vaticadahlia/IMG_7078.JPG) +![]({{site.base_url}}/m/vaticadahlia/IMG_6913.JPG) +![](https://farm8.staticflickr.com/7416/9764034711_79fde80027_c.jpg) +![](https://farm4.staticflickr.com/3748/9764333373_a60418a665_c.jpg) +![](https://farm8.staticflickr.com/7447/9764027342_028754ac0b_c.jpg) +![](https://farm6.staticflickr.com/5495/9764039651_1f54e8abd9_c.jpg) +more via [flickr](http://www.flickr.com/photos/quilime/sets/72157635109003752/) + +### process +![]({{site.base_url}}/m/vaticadahlia/IMG_6709.JPG) +![]({{site.base_url}}/m/vaticadahlia/IMG_6752.JPG) +![]({{site.base_url}}/m/vaticadahlia/frame-fasteners.PNG) +![]({{site.base_url}}/m/vaticadahlia/process-rhino-grass3.PNG) + + +### exhibition +2014 [San Francisco CA]() +2013 [Brookly NY](http://areyoudevoted.squarespace.com/exhibitions/2013/8/28/vatica-dahlia-rites.html) + +More info: vaticadahlia.com \ No newline at end of file diff --git a/_posts/projects/2015-03-15-naagz.md b/_posts/projects/2015-03-15-naagz.md new file mode 100755 index 0000000..a69c901 --- /dev/null +++ b/_posts/projects/2015-03-15-naagz.md @@ -0,0 +1,25 @@ +--- +title: NAAG Z +layout: post +date: 2015-03-15 +categories: project featured +tags: collab +excerpt: projection-mapped sculpture +thumb: /m/naagz/thumb.png +--- + +## NAAG Z + + + +Gabriel Dunne [gabrieldunne.com](http://gabrieldunne.com) +Vishal K Dar [vishalkdar.com](http://vishalkdar.com) + +NAAG Z +4' x 4' x 14' +Plaster of Paris, EPS Foam, Steel, Custom Software, Computer, Projectors +Mumbai, 2015 + + + + \ No newline at end of file diff --git a/_posts/projects/2015-10-15-naagxy.md b/_posts/projects/2015-10-15-naagxy.md new file mode 100755 index 0000000..d20d51f --- /dev/null +++ b/_posts/projects/2015-10-15-naagxy.md @@ -0,0 +1,45 @@ +--- +title: NAAG XY +layout: post +date: 2015-10-15 +categories: project featured +tags: collab +excerpt: projection-mapped sculpture +thumb: /m/naagxy/thumb.png +--- + + + +NAAG XY +Gabriel Dunne [gabrieldunne.com](http://gabrieldunne.com) +Vishal K Dar [vishalkdar.com](http://vishalkdar.com) +EPS foam, plaster of paris, custom software, multiple projectors, computer +14' x 8' x 4' + +[http://neat.thecjm.org/dunne/](http://neat.thecjm.org/dunne/) +[instructable](http://www.instructables.com/id/NAAG-XY/) + + + +## exhibition + +NEAT: New Experiments in Art and Technology +Contemporary Jewish Museum, San Francisco +Oct 15, 2015 – Jan 17, 2016 +[http://neat.thecjm.org/](http://neat.thecjm.org/) + +more info: [http://www.thecjm.org/on-view/currently/neat-new-experiments-in-art-and-technology/about](http://www.thecjm.org/on-view/currently/neat-new-experiments-in-art-and-technology/about) + + +## selected press + + - [SF Weekly](http://www.sfweekly.com/sanfrancisco/contemporary-jewish-museum-cia-lori-starr-art-renny-pritikin-chasing-justice-neat-vishal-k-dar-gabriel-dunne-naga-naag-xy-toilets/Content?oid=4374885) + - [SF Weekly](http://www.sfweekly.com/exhibitionist/2015/10/29/neat-art-and-tech-converge-at-contemporary-jewish-museum) + - [SF Chronicle](http://www.sfgate.com/entertainment/article/At-Jewish-Museum-tech-is-art-and-vice-versa-6607956.php) + - [KQED](http://ww2.kqed.org/arts/2015/11/04/not-just-neat-new-experiments-in-art-and-technology-delights/) + - [SF Examiner](http://www.sfexaminer.com/technology-driven-artworks-amaze-in-cjms-neat/) + + +
+ + diff --git a/_posts/projects/2016-03-14-seaquence-app.md b/_posts/projects/2016-03-14-seaquence-app.md new file mode 100755 index 0000000..3c93c95 --- /dev/null +++ b/_posts/projects/2016-03-14-seaquence-app.md @@ -0,0 +1,20 @@ +--- +layout: post +title: "Seaquence iOS App" +categories: project featured +date: 2016-03-15 +excerpt: software music toy +thumb: /m/seaquence/3-up-700px.png +--- + +A beautiful and playful multi-voice synthesizer + +Created by [Okaynokay](https://oknk.studio) + +[Project Website](https://oknk.studio/seaquence) + + + + + +![]({{site.baseurl}}/m/seaquence/iphone5s_blue_3.png) \ No newline at end of file diff --git a/_posts/projects/2018-09-22-metaflux.md b/_posts/projects/2018-09-22-metaflux.md new file mode 100644 index 0000000..8ee440f --- /dev/null +++ b/_posts/projects/2018-09-22-metaflux.md @@ -0,0 +1,123 @@ +--- +layout: post +title: METAFLUX: of Present Futures +date: 2018-08-10 +categories: project featured +--- + +![]({{site.baseurl}}/m/metaflux/poster-sm.png) + +META +FLUX +*of Present Futures* + +### Works By + +[Nicole Aptekar](https://nicolation.net) +[Ryan Alexander](http://onecm.com) +[Harvey Moon](http://harvey-moon.com) +[Gabriel Dunne](http://gabrieldunne.com) +[Mike Jacobs](http://mjacobs.me) + +### About + +*__meta__ (a) pertaining to or noting an abstract, high-level analysis or commentary, especially one that consciously references something of its own type.* + +*__flux__ (n) continuous change, passage, or movement* + +Framing understanding through routines and systems, Metaflux is a body of procedure-oriented artworks based on system-focused approaches and integrations. The processes examined by the artists featured in Metaflux are intrinsic to navigating shifts and changes by establishing routines and frameworks. The artifacts of these personal frameworks, as well as the frameworks themselves, represent the efforts to create reliable variables and constructs in a life defined by constant transition and flux. + +### When + +Public Opening September 22nd, 3-8pm + +_Upcoming dates_ +__Saturday, Nov 10th, 2p - 5:00pm (open hours)__ +__Saturday, Nov 17th, 2p - 5:00pm (closing reception)__ + +Additional visiting hours available by appointment through Nov 17th. Email [studio@gabrieldunne.com](mailto:studio@gabrieldunne.com?subject=Metaflux Gallery Hours) to set up appointment + + +### Where + +[1410 62nd St, Emeryville, CA 94608](https://goo.gl/maps/FK1fSxQR3Jn) +(second floor, buzz 'Gabriel Dunne Studio' from the callbox up the ramp to the right of the 1410 address) + + +### Catalogue + +[Download latest catalog PDF](http://media.quilime.com/files/pdf/metaflux_catalogue.pdf) + +### Purchasing + +Requests for purchasing works can be made in person at the gallery, or via [email](mailto:studio@gabrieldunne.com?subject=Interested in Metaflux Artwork). + +### Artists + +![]({{site.baseurl}}/m/metaflux/nicole.png) + +###### NICOLE APTEKAR + +[https://nicolation.net/](https://nicolation.net/) + +My work harnesses basic shapes from the digital world, reifying them in physical reality to expand the liminal space between. Through a wide range of techniques ranging from custom software crafted for each piece to careful composition and contemporary CNC fabrication methods, my process itself continuously evolves in order to realize complex and graceful forms in our tangible reality. I am fascinated by the transitionary state humanity has found itself in, where the boundaries of digital and physical, virtual and real, having only just been established, are almost immediately washing away. My work lives on this tenuous divide, confusing the notion of a render and a photo, handmade and computer-fabricated. + + +

+ + +![]({{site.baseurl}}/m/metaflux/ryan.png) + +###### RYAN ALEXANDER + +[http://onecm.com](http://onecm.com) + +The work presented here is an attempt to move past doubts about the value in personal artistic practice. +An excuse to enjoy the process of discovering pleasing aesthetic forms. + +*Sketches* + +The result of several nights spent in VR sketching human-sized gestures. These models were exported, stylized and rendered from several viewpoints in multiple colored markers. + +*Spirals* + +Experiments with rendering shaded forms with a single line, or two interfering lines. These spirals were created in the online code sketching environment sketch.paperjs.org and rendered in several types of pen and marker. + + +

+ + +![]({{site.baseurl}}/m/metaflux/harvey.jpg) + +###### HARVEY MOON + +[http://harvey-moon.com](http://harvey-moon.com) + +This work is always in progress. During the duration of the exhibition the machine will produce a new drawing each week. The drawings are informed by live data transmitted remotely from the artist. The works will reveal an iterative process of production. The generative drawings are an artifact of the artistic practice and experimentation. Each week when a new drawing is started it will be altered and informed by the previ ous piece. This work intends to reveal the constantly +evolving modes of artistic practice. The collaboration between the artistic intention and the robotic output is revealed by this series of unique drawings. + +Harvey Moon is a new media artist and a creator of tools and machines. His work centers around the ways technology mediates our perception of the world. Technology has always been used to extend our abilities beyond our human potential. With this inspiration, Moon creates custom software, electronics or kinetic systems to produce new and unique works of art. + + +

+ + +![]({{site.baseurl}}/m/metaflux/mike.JPG) + +###### MICHAEL JACOBS + +[http://mjacobs.me](http://mjacobs.me) + +By trade, I am a software designer and programmer, where I take care in designing technology with precise functionality for specific needs. As an artist — practicing in imagery, sound, and interaction — I am compelled to break out of these rigid relationships with our technologies, repurpose them to do things for which they were not designed, and find beauty in their limitations and failures. Along with this playful disrespect, my process utilizes chance, generative systems, and shoddily constructed custom software and hardware as a way to arrive at unexpected outcomes, which I then curate, or use as starting points to build into final pieces. + + +

+ +![]({{site.baseurl}}/m/metaflux/gabe.png) + +###### GABRIEL DUNNE + +[http://gabrieldunne.com](http://gabrieldunne.com) + +My work for METAFLUX represents a view into my continuous investigations of visual, audible, and physical frequencies of natural and technological perceptual and imperceptible realities. Through my work I am exploring a cosmotechnical approach of pythagorean axioms that can harmonize beauty, wisdom, and truth through resonance, geometry, celestial mechanics in an effort to establish metaphysical methodologies for understanding form, shape, function, materiality, and ephemerality. I work with various methods of sculpture, photogrammetry, and traditional and mechanical drawing and painting, which represent my meditations and explorations of the perceivable and imperceivable natures of the universe. + diff --git a/_posts/works/2001-07-05-arch.md b/_posts/works/2001-07-05-arch.md new file mode 100755 index 0000000..033505a --- /dev/null +++ b/_posts/works/2001-07-05-arch.md @@ -0,0 +1,24 @@ +--- +layout: post +title: Architecture Mythos +date: 2001-07-05 +categories: work +thumb: /m/icarus-deadalus/thumb.png +--- + +Architectural Models depicting various greek mythos and themes + +![]({{site.baseurl}}/m/arch/007_sm.jpg) +Troughs +18" x 18" x 6" +balsa wood + +![]({{site.baseurl}}/m/arch/005_sm.jpg) +Icarus & Deadalus +18" x 18" x 6" +balsa wood + +![]({{site.baseurl}}/m/arch/006_sm.jpg) +Light + Heavy +18" x 18" x 18" +balsa wood, foam core diff --git a/_posts/works/2002-05-01-colorcalc.md b/_posts/works/2002-05-01-colorcalc.md new file mode 100644 index 0000000..790ff53 --- /dev/null +++ b/_posts/works/2002-05-01-colorcalc.md @@ -0,0 +1,244 @@ +--- +layout: post +date: 2002-05-01 +title: "Color/Shape/Sound" +categories: article +thumb : /m/colormuscalc/circleoffifths_color.gif +--- + + +(c) 2002 Gabriel Dunne + +Original Document: [color/shape/sound](http://portfolio.quilime.com/archive/colorcalc/) + + +## Introduction +The Color/Shape/Sound explorer generates a three-dimensional shape as a result from musical input from the user. The calculator attributes color to certain notes, creating a harmonious relationship between Shape, Color and Sound. + +## The Circle of Fifths + +The Circle of Fifths is a way to learn the key of a given 12-note-scale musical composition. The Circle of Fifths tells you how many sharps or flats are in a given key. The key of C has no sharps or flats, for example. The diagram is called the Circle of Fifths because as you go clockwise you go up a fifth. For example, the fifth note of the C major scale is G. The fifth note of the G major scale is D, and so on. + +Notice that every other note is succeeded by the one before. C, skip G, D, skip D, A, etc. Also notice how there are twelve notes corresponding to twelve numbers on a clock. C is in he 12 noon position. G is in the 1 o'clock position (likewise has one sharp; F in the 11 o'clock position.) D is in the two o'clock position (likewise has sharps; F and C). A is in the 3 o'clock position (likewise has 3 sharps; F, C, G). E is in the four o'clock position and has 4 sharps (F, C, G, D). B is in the 5 o'clock position and has 5 sharps (F,C,G,D,A). F# is in the 6 o'clock position and has 6 sharps (F,C,G,D,A,E; everything is sharp except B; notice also how this corresponds with the key of F in which it has one flat, Bb). If you follow the gray lines of the inner star, you can visually see how a single octave of sound is represented in this circular fashion. + +
![]({{site.baseurl}}/m/colormuscalc/circleoffifths_star.gif)
+ +As we move clockwise around the wheel, we begin to see a pattern of the amount of sharps contained in each major key. There are no sharps in the key of C. There is one sharp in the key of G, and two in the key of D, etc. + +
+C : +G : F# +D : F#, C# +A : F#, C#, G# +E : F#, C#, G#, D# +B : F#, C#, G#, D#, A# +F#: F#, C#, G#, D#, A#, E# +C#: F#, C#, G#, D#, A#, E#, B# +
+ +To count the number of flats, we move counterclockwise along the wheel. There are no flats in the key of C, one in the key of F, two in the key of Bb, etc. Because it's neater, we write everything as flats. + +
+C : +F : Bb +Bb: Bb, Eb +Eb: Bb, Eb, Ab +Ab: Bb, Eb, Ab, Db +Db: Bb, Eb, Ab, Db, Gb +Gb: Bb, Eb, Ab, Db, Gb, Cb +Cb: Bb, Eb, Ab, Db, Gb, Cb, Fb +
+ + +## The Circle of Notes +The Circle of Notes is something I came up with to describe arranging the notes chromatically around a circle. The only relationship between the notes is the actual distance in which they are spaced from each other on the keyboard. C is spaced away from C# the same distance as A is spaced from Bb, etc. Hence, the Circle of Notes is simply a representation of a single octave wrapped to 360 degrees. + + +
![]({{site.baseurl}}/m/colormuscalc/circleofnotes.gif)
+ +## The Color Wheel + +The Color Wheel describes the relationships between colors. It is laid out so that any two primary (red, yellow, blue) are separated by the secondary colors (orange, violet, and green). + +
![]({{site.baseurl}}/m/colormuscalc/colorwheel.gif)
+ +## The Color Wheel In Relation to the Circle of Notes + +When we composite the Color Wheel behind the Circle of Notes, we can create a working relationship between the two. As we move along the wheel clockwise, we can relate specific notes to specific colors, eventually looping through an octave will also loop through the entire spectrum of color. + +
![]({{site.baseurl}}/m/colormuscalc/circleofnotes_color.gif)
+ +According to this model, C relates to Yellow. E relates to Red, and Ab relates to Blue, (the primary colors). If we look at these notes on a keyboard, we can see that they are spaced two tones (steps) apart, or four semi-tones (half steps) apart. An octave consists of twelve semi-tones total, so four semitones is an exact third of an octave. Exactly the same relationship that the primary colors have to the color wheel -- they are spaced apart in perfect thirds. By this model, C, E and Ab are the 'primary notes' of the octave. + +
![]({{site.baseurl}}/m/colormuscalc/keyboard_rgb.gif)
+ +If we rearrange the notes on the Circle of Notes so that the wheel becomes the Circle of Fifths, and let the corresponding colors follow the move, the result is a very dissonant color wheel: + +
![]({{site.baseurl}}/m/colormuscalc/circleoffifths_color.gif)
+ +According to this model, a very interesting relationship is illustrated, simply because of the dissonance between certain notes. Complimentary colors stay in the same, but their arrangement in a circular fashion is distorted to follow the Circle of Fifths model. + + +## Secondary Colors In Relation to the Circle of Notes + +The notes in between the 'primary notes' then represent the secondary and tertiary colors represented in the color wheel. + +
![]({{site.baseurl}}/m/colormuscalc/keyboard_spectrum.gif)
+ +While the keyboard is beginning to look more like Fisher-Price, we begin to notice a definite pattern and relationship. As we move up and down the octaves of the keyboard, the color wheel loops 360 degrees, managing to assign a specific color to each note in the octave.
+ +
![]({{site.baseurl}}/m/colormuscalc/keyboard_stacked.gif)
+ +## Notes, and Their Relationship to Ratio & Symmetry + +Pythagoras observed that when the blacksmith struck his anvil, different +notes were produced according to the weight of the hammer. Number +(in this case "amount of weight") seemed to govern musical +tone. Further, he observed that if you take two strings in the same +degree of tension, and then divide one of them exactly in half, when +they are plucked the pitch of the shorter string is exactly one octave +higher than the longer: + +
![]({{site.baseurl}}/m/colormuscalc/ratio_01.gif)
+
![]({{site.baseurl}}/m/colormuscalc/ratio_02.gif)
+ + +Again, number (in this case "amount of space") seemed to govern musical tone. Or does musical tone govern number? He also discovered that if the length of the two strings are in relation to each other 2:3, the difference in pitch is called a fifth: + +
![]({{site.baseurl}}/m/colormuscalc/ratio_01.gif)
+
![]({{site.baseurl}}/m/colormuscalc/ratio_03.gif)
+ +...and if the length of the strings are in relation to each other 3:4, then the difference is called a fourth. + +
![]({{site.baseurl}}/m/colormuscalc/ratio_01.gif)
+
![]({{site.baseurl}}/m/colormuscalc/ratio_04.gif)
+ +Thus the musical notation of the Greeks, which we have inherited can be expressed mathematically as 1:2:3:4 + +All this above can be summarized in the following, with some other additional ratios and their names: + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  Whole Note 1:1
Diapason Octave 2:1
Diapason Diapente 1.5 Octaves 3:1
Disdiapason 2 Octaves 4:1
Diepente The 5th 3:2
Biatessera The 4th 4:3
Tonus Whole Tone 9:8
+
+ +Represented visually: + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Whole Note (1:1) :      
Diapason (2:1) :  
Diapason Diapente (3:1) :  
Disdiapason (4:1) :  
Diepente (3:2) :   
Biatessera (4:3) :  
(5:4) :   
(4:9) :  
Tonus (9:8) :  
+
+ +## Notes, and Their Relationship to Ratio & Symmetrym, Combined with the Relationship of Color. + +To develop an interface that would allow interaction between shape, color and tone involves an initial choice. Which aspect would the user interact with? Would they chose colors and have the program draw a shape, and play the relating sound? Would the user draw a shape, and have the program chose the appropriate color in the relationship, and play the corresponding notes? The third possibility would be to have the user play a piece of music, and have it relate directly to shape and color. I have decided that this will be the initial implementation of the first version of this application. + +Essentially, the user will play a sequence of notes, the program will calculate the ratios between these notes and draw a shape, as well as attribute each note to a corresponding color on the color wheel. + +In the future, it's possible that additional versions of the program will allow the user to interact with all three, and see how the different factors of shape, color, and sound relate to each other no matter which aspect is modified. + +## Interface Design + +Initial concepts of interface design include implementation of both color/note wheels, and an interactive keyboard. The large area above will contain the form that results from the ratios designated by the notes played on the keyboard. + + +![]({{site.baseurl}}/m/colormuscalc/interface_01.gif) + +The shapes drawn must be cubic in order to relate to the ratios in three dimensions, but future implementation in other geometries will be possible. + +In this demonstration, the user picked the notes C, F and A in succession, +drawing a cube that relates to the ratios of space that exists between +the notes, and coloring the cube appropriately. If the user was to +hit a fourth note, it will override the first note pressed in the +sequence. In this case, if the user decides to hit D, it will override +C, and change the yellow to orange, as well as change the shape of +the cube. + +![]({{site.baseurl}}/m/colormuscalc/interface_02.gif) + + \ No newline at end of file diff --git a/_posts/works/2002-06-12-celestes.md b/_posts/works/2002-06-12-celestes.md new file mode 100755 index 0000000..8788ff1 --- /dev/null +++ b/_posts/works/2002-06-12-celestes.md @@ -0,0 +1,18 @@ +--- +layout: post +title: "Celestes Calendar" +date: 2002-06-12 +categories: work +thumb: /m/celestes/thumb.png +--- + +![]({{site.baseurl}}/m/celestes/calendar_piece_thmb.jpg) + +18" x 12" +Inkjet print, Balsa Wood + +Adaptation of Galileo's Celestes calendar. +Includes phases of the moon, equinoxes and solstices. + + +![]({{site.baseurl}}/m/celestes/calendar.jpg) \ No newline at end of file diff --git a/_posts/works/2003-05-05-bodyneg.md b/_posts/works/2003-05-05-bodyneg.md new file mode 100755 index 0000000..8f74d92 --- /dev/null +++ b/_posts/works/2003-05-05-bodyneg.md @@ -0,0 +1,20 @@ +--- +layout: post +title: Body Negative +date: may 05 2003 +categories: work +thumb: /m/bodyneg/thumb.png +--- + +![]({{site.baseurl}}/m/bodyneg/003.png) +5 wall-mounted panels +ink press, wood +8' x 4' x 2' + +Exhibited in pont aven, + +![]({{site.baseurl}}/m/bodyneg/BODYNEG.jpg) +![]({{site.baseurl}}/m/bodyneg/sketchbook_05.jpg) +![]({{site.baseurl}}/m/bodyneg/sketchbook_18.jpg) + + diff --git a/_posts/works/2007-07-02-mask.md b/_posts/works/2007-07-02-mask.md new file mode 100755 index 0000000..9d7930f --- /dev/null +++ b/_posts/works/2007-07-02-mask.md @@ -0,0 +1,14 @@ +--- +layout: post +date: 2007-07-02 +title: Mask +categories: work featured +thumb: /m/mask/thumb.png +--- + +![]({{site.baseurl}}/m/mask/mask.jpg) + +![]({{site.baseurl}}/m/mask/1mask2.jpg) + +oil on panel +12" x 12" diff --git a/_posts/works/2007-08-23-prism.md b/_posts/works/2007-08-23-prism.md new file mode 100755 index 0000000..96406fd --- /dev/null +++ b/_posts/works/2007-08-23-prism.md @@ -0,0 +1,12 @@ +--- +layout: post +title: "Prism" +date: 2007-08-23 +categories: work featured +thumb: /m/prism/thumb.png +--- + +![]({{site.baseurl}}/m/prism/3.jpg) + +oil on canvas +4' x 3' diff --git a/_posts/works/2008-05-02-rattle.md b/_posts/works/2008-05-02-rattle.md new file mode 100755 index 0000000..42b2856 --- /dev/null +++ b/_posts/works/2008-05-02-rattle.md @@ -0,0 +1,22 @@ +--- +title: Rattle +date: 2008-05-02 +categories: work featured +layout: post +thumb: /m/rattle/thumb.png +--- + + +Rattle software synth controller proof-of-concept + +A digital software rattle experiment. Rattles and shakers can be instanced and embedded into one another, allowing for a wide rage of sensitivity, sonic subtlety, and layers when making sound. Interaction with the digital rattle done through wii-mote. Rattle impulses trigger a synth via OSC, triggering ChucK or Ableton Live. + +Various experiments created with C++, Processing, ChucK, Ableton Live, MaxMSP + + +
+
+
+
+ + diff --git a/_posts/works/2008-05-04-forestweb.md b/_posts/works/2008-05-04-forestweb.md new file mode 100644 index 0000000..d235a87 --- /dev/null +++ b/_posts/works/2008-05-04-forestweb.md @@ -0,0 +1,24 @@ +--- +layout: post +date: 2008-05-04 +title: Forest Web +categories: work +thumb : /m/forestweb/thumb.png +--- + +![]({{site.baseurl}}/m/forestweb/zforest.0619.png) +c++/OpenGL +Interactive software + +A network of dots and lines interacts with itself as enmeshed physically-simulated chains. Depth determines audio volume. Intersections, connections and line-length determine tones. Similar tones and chord groups are designated with additional web lines and connections. You are able to interact with each web line as the strings of an instrument, each tone resonating through its connections. + +Created during development using JTNimoy's JTToolkit. + +![]({{site.baseurl}}/m/forestweb/zforest.0105.png) +![]({{site.baseurl}}/m/forestweb/zforest.0327.png) + +![]({{site.baseurl}}/m/forestweb/web.0645.png) +![]({{site.baseurl}}/m/forestweb/web.1336.png) +![]({{site.baseurl}}/m/forestweb/web.2533.png) + + diff --git a/_posts/works/2008-10-05-swimtank.md b/_posts/works/2008-10-05-swimtank.md new file mode 100644 index 0000000..a4ccc52 --- /dev/null +++ b/_posts/works/2008-10-05-swimtank.md @@ -0,0 +1,14 @@ +--- +layout: post +title: Swim Tank +date: 2008-10-05 +categories: work featured +thumb: /m/swimtank/thumb.png +--- + +![]({{site.baseurl}}/m/{{page.id}}/fishtank.6677.png) +Swim Tank +Interactive graphics software +C++/OpenGL + +A form follows an infinite, oscillating path drawn by the user. The user controls the direction a "fish" on two axis, while the depth of the path follows a sinusoidal rhythm that is affected by paths previously drawn. \ No newline at end of file diff --git a/_posts/works/2009-01-06-seashell.md b/_posts/works/2009-01-06-seashell.md new file mode 100644 index 0000000..79e8ff7 --- /dev/null +++ b/_posts/works/2009-01-06-seashell.md @@ -0,0 +1,13 @@ +--- +layout: post +title: Seashell +date: 2009-01-06 +categories: work featured +thumb: /m/seashell/thumb.png +--- + +![]({{site.baseurl}}/m/seashell/seashell.jpg) + +Conch Shell, wireless speaker removed and displayed for documentation + +Internal speaker hidden inside shell plays sounds of Los Angeles traffic, perceived as the sound of the ocean. diff --git a/_posts/works/2009-02-02-synonymovement.md b/_posts/works/2009-02-02-synonymovement.md new file mode 100755 index 0000000..6e745f9 --- /dev/null +++ b/_posts/works/2009-02-02-synonymovement.md @@ -0,0 +1,13 @@ +--- +layout: post +date: 2009-02-02 +title: Synonymovement +categories: work +thumb: /m/synonymovement/thumb.png +--- + + + +audiovisual software experiment +c++, ableton live, max/msp + diff --git a/_posts/works/2009-05-06-cymatic-organ.md b/_posts/works/2009-05-06-cymatic-organ.md new file mode 100755 index 0000000..8b4c1a9 --- /dev/null +++ b/_posts/works/2009-05-06-cymatic-organ.md @@ -0,0 +1,76 @@ +--- +layout: post +title: "Cymatic Organ" +date: 2009-06-05 +categories: work featured +excerpt: interactive audiovisual installation +thumb: /m/cymatic-organ/thumb3.png +--- + + + +![]({{site.baseurl}}/m/{{page.id}}/organ_01.png) + +Cymatic (Wave Form) Organ +6 Channel Audio Installation +speakers, water, arduino, processing, chuck, audio interface +dimensions variable + + +Speakers are suspended and filled with water. Speakers emit a frequency based on user-interaction that results in a visual and interactive display of vibrations. Each speaker is waterproofed, facing upward, and filled with water. Speakers are fitted with individual sensors, allowing viewers to interact with the emitted frequency as they would a Theramin. Multiple speakers are suspended at various heights throughout the space, operating as generative musical instruments. Synth and software created with Arduino, Processing and ChucK. + +Three distinct vibrations are present: light waves, sound waves, and the physical vibration of water. + +Each speaker vibrates with tones that vibrating the water visually in geometric cymatic patterns. The tones are synthesized in real time, and vary in pitch depending on user interaction. + + + +![]({{site.baseurl}}/m/{{page.id}}/cymatic-organ-1.png) +![]({{site.baseurl}}/m/{{page.id}}/cymatic-organ-2.png) +![]({{site.baseurl}}/m/{{page.id}}/cymatic-organ-3.png) +![]({{site.baseurl}}/m/{{page.id}}/organ_02.png) +![]({{site.baseurl}}/m/{{page.id}}/organ_03.png) + +![]({{site.baseurl}}/m/{{page.id}}/cymatic-organ-4.png) +![]({{site.baseurl}}/m/{{page.id}}/chladni.png) +![]({{site.baseurl}}/m/{{page.id}}/musicalengineering.png) +![]({{site.baseurl}}/m/{{page.id}}/patterns.png) + + + + + + + +[Installation PDF](/content/projects/{{page.id}}/install/wave_form_organ_gdunne.pdf) + + \ No newline at end of file diff --git a/_posts/works/2009-08-20-stars.md b/_posts/works/2009-08-20-stars.md new file mode 100755 index 0000000..bba2d19 --- /dev/null +++ b/_posts/works/2009-08-20-stars.md @@ -0,0 +1,27 @@ +--- +layout: post +title: Stars +date: 2009-08-20 +categories: work featured +excerpt: projection installation +thumb: /m/stars/thumb2.png +--- +![]({{site.baseurl}}/m/stars/stars-lg.png) +C++/OpenGL Software Projection +Dimensions and length variable + +An exploration of infinite/finite space. The user transitions between macro and micro environments of mathematically infinite scale, limited only by computer processing power. As the viewer moves through multiple spaces, their scope and perspective widends and transcends while space becoms infinitely big and infinitely small simultaneously. + +![]({{site.baseurl}}/m/stars/stars-lg2.png) +![]({{site.baseurl}}/m/stars/stars-lg3.png) + +![]({{site.baseurl}}/m/stars/2_8719604086_7b91683a7f_b.jpg) +![]({{site.baseurl}}/m/stars/3_8718484853_280221598c_c.jpg) +![]({{site.baseurl}}/m/stars/4_stara.0898.jpg) +Exhibition at SomaARTs "NightLight", 2013 + +![]({{site.baseurl}}/m/stars/5_astars.jpg) +Installation at Gray Area "Powers of Ten" + +![]({{site.baseurl}}/m/stars/4236729416_37a6f270d4_o.jpg) +studio process \ No newline at end of file diff --git a/_posts/works/2010-12-20-monad.md b/_posts/works/2010-12-20-monad.md new file mode 100755 index 0000000..84b3194 --- /dev/null +++ b/_posts/works/2010-12-20-monad.md @@ -0,0 +1,83 @@ +--- +title: Monad +layout: post +date: 2010-12-20 +categories: work featured +excerpt: projection sculpture +thumb: /m/monad/thumb3.png +--- + +![]({{site.baseurl}}/m/monad/monad-ga.png) + +projection sculpture +7' x 7' x 8" +Wood, Fabric, Java/Processing, Ableton Live, Max/MSP + +A one dimensional visualization of the universe represented as varying +length of vibration and time cycles. concentric rings representing +lengths of time oscillate between the age of the universe, planck +time, and the current moment. + +## statement + +the central point of a circle is the beginning of a one-dimensional +universal construct. the steps involved in creating any circle is a +metaphor for the ongoing creating process itself. anywhere you place a +center you can radiate a circle and symbolically create the space of +the universe. a true point is impossible to create, having no +dimension. consider the center point of monad as the current consciousness +of the present moment, and the edge of the circle as an infinite expansion of +the universe. + +natures forms are represented to us by invisible forces that make them +visible. these forces are vibratory cycles that oscillate through all +matter. as we explore frequencies of vibration on a universal scale, +we are metaphorically repeating the principal of the Monad: the +opening of light, space, and time in all directions. + +cycles are the core principal of the universe, and are all pervasive. +we are thoroughly enmeshed in cycles and the periodic rhythms, which +span the frequencies of space and time, are of only the most obvious +on a daily basis: our sleep patterns, the weather, the seasons, +sunrise, sunset, the rising and falling of emotion. On a larger +magnitude: the age of our bodies, the rise and decline of species, the +life cycle of stars. On a smaller, our breathing rate, our heart rate, +the audio spectrum of music, speaking, the visible light spectrum, +radio waves, cosmic rays, and ultimately the smallest measurable +amount of time we can comprehend, described as Planck time. The +appearance of the entire world and all existence with its natural and +technological cycles are rooted in the archetypal, cyclical sinusoidal +principals of the monad. + +![]({{site.baseurl}}/m/monad/4298657997_7bd161abcd_o.png) + +## installation +each ring that moves across the surface represents a length of a time +cycle. as they bass by, audible ticks are heard. higher pitched, +rapid clicks count the current order of magnitude, ranging from 10^-18 +to 10^-43. When passing the visual spectrum, it is show as color, +while passing the audible spectrum, frequencies of the chakras are heard. + +![]({{site.baseurl}}/m/monad/2-monad2.jpg) +![]({{site.baseurl}}/m/monad/1-monad_wide.jpg) +![]({{site.baseurl}}/m/monad/z-4254727883_5f7090db0f_o.png) +![]({{site.baseurl}}/m/monad/x-4264434365_d1f51c6ca9_o.png) +![]({{site.baseurl}}/m/monad/w-4264434313_9c1abc891b_o.png) +![]({{site.baseurl}}/m/monad/4-264434233_8dd90f9c69_o.png) +![]({{site.baseurl}}/m/monad/3-monad_install_02.png) + + +## thanks to +Miles Stemper, Stephanie Sherriff for fabrication assistance. +Jeff Lubow for audio engineering assistance. +Ryan Alexander for projection-alignment coding assistance. + + + + + + diff --git a/_posts/works/2011-07-11-icosi.md b/_posts/works/2011-07-11-icosi.md new file mode 100755 index 0000000..040fefc --- /dev/null +++ b/_posts/works/2011-07-11-icosi.md @@ -0,0 +1,162 @@ +--- +layout: post +title: "ICOSI" +date: 2011-07-11 +categories: work featured +excerpt: audiovisual live-performance +thumb: /m/icosi/2_4847387674_5419f0b672.jpg +--- + +![]({{site.baseurl}}/m/icosi/4847387648_908df243cc_b.jpg) + +audiovisual performance, installation +7' x 7' x 1' projection-mapped sculpture, stereo audio +Processing, Java, OpenGL, Ableton Live, MaxMSP + +![]({{site.baseurl}}/m/icosi/4846767709_1e7503ab0b_b.jpg) +![]({{site.baseurl}}/m/icosi/2_4847387674_5419f0b672.jpg) +![]({{site.baseurl}}/m/icosi/4846767605_737556aa2f_b.jpg) + +more photos on [flickr](https://www.flickr.com/photos/quilime/sets/72157624499344281/) + +## Process + +![]({{site.baseurl}}/m/icosi/icosi_01.png) + +The form is composed of 7 panels trimmed and scaled from a full icosidodecahedron. The piece represents my practice and experiences in regards to my own growth and experience. Geometrically, the form is inspired by sacred polyhedra that represent forms of transition. The choice of an [icosidodecahedron](http://en.wikipedia.org/wiki/Icosidodecahedron) represents transition of two forms and frequencies, represented by an [icosahedron](http://en.wikipedia.org/wiki/Icosahedron) and its dual polyhedron, a [dodecahedron](http://en.wikipedia.org/wiki/Dodecahedron). + +![]({{site.baseurl}}/m/icosi/icosi_multi.png) + +Software and audio toolsets for ICOSI are procedurally generated from the form. A factor I didn't anticipate was how this project dramatically split my focus into two realms (sound and visuals), which was a juggle that I didn't anticipate as I was developing the visual software on one split-screen before the performance. My goal was to create a unified performance tool, yet still resulted in a focus split. I am inspired to continue pursuing interfaces and controllers to overcome the separation of creating audio and visuals simultaneously. + +The multiple mediums (sculpture, sound, visual media) of this particular project was fascinating. Each iteration represents a process of my curiosities in technology, consciousness, spirituality, design, and fabrication. + + +![]({{site.baseurl}}/m/icosi/3_5165246192_dfa231d7ef_z.jpg) +![]({{site.baseurl}}/m/icosi/1_icosigdunne-e1288810334434.jpg) + + + + + + + + + +## Software Control Schema + sends + low pass | overall complexity + delay | overall trails + reverb | overall softness + + mode presets + ctrl via /monome128 + + each + (16 arpvis/clips) + (16 effect automations) + (1 mute) + + +## [VERTS] + + desc | rhythm, clicks, pulses quarks, photos, static, stars + timbre | percussive, clicks, bells + inst | collision (synthesis) + pulse | note + pulse len | note length, decay + radius | band pass filter amt (thick = lows, thin = highs) + trail number | decay feedback + trail length | decay wetness + reverb | softness + left/right pos | pan + alpha | vel + rotation (xy) | auto-pan + + arp vis: + all hold + all pulse + directional + random + multiple pulse modes (can link with edges) + + +## [EDGES] + + desc | voices, chants, drones, rhythms, tones, frequencies + timbre | bass, synth, drone + inst | korg / guit (live, recordings) + pulse | note + dir pulse | note w/length, decay + dir pulse len | note length, decay + thickness | band pass filter amt (thick = lows, thin = highs) + envelope | adsr + trail number | decay feedback + trail length | decay wetness + reverb | softness + left/right pos | pan + alpha | vel + rotation (xy) | auto-pan + + arp vis: + all hold + all pulse / all verts of one plane pulse + 8x directions + random placement, tree growth + multiple pulse modes (can link with verts) + + +## [PLANES] + + desc | ambience, low freq, textures, rhythms, pulses, orbiting + timbre | gong, cymbal, bell + inst | sampler (recordings) + pulse | hit w/decay + pulse in/out | attack envelope + pulse from edge | hits w/decay + light revs | panning, auto pan + color | reverb, detail + left/right pos | pan + alpha | vel + rotation (xy) | auto-pan + rotate mask | auto-pan + + arp vis: + all hold + all pulse + 8x directions + random placements, pulse + colors + revolutions with orbiting light colors + glow + + +![]({{site.baseurl}}/m/icosi/plane_layout.png) + + + + +### performances + +Nov 06 2010 [Takes on Sound & Space](http://www.gaffta.org/2010/11/03/takes-on-sound-space-symposium-performances-this-saturday/), live +visual performance with music by Jeff Lubow. + +Jul 29 2010 Biennial of the Americas, Denver CO + + +
+ +
+ + + +## Rider +![]({{site.baseurl}}/m/icosi/rider_01.png) +![]({{site.baseurl}}/m/icosi/rider_02.png) +[pdf](http://media.quilime.com/files/projects/icosi/gdunne_rider_diag.pdf) + diff --git a/_posts/works/2014-04-24-tetra-field.md b/_posts/works/2014-04-24-tetra-field.md new file mode 100644 index 0000000..88f1061 --- /dev/null +++ b/_posts/works/2014-04-24-tetra-field.md @@ -0,0 +1,102 @@ +--- +layout: post +title: "Tetra Field" +date: 2014-04-24 +categories: work featured +thumb: "/m/tetrafield/thumb.png" +excerpt: modular projection-mapped installation +--- + +![](https://farm6.staticflickr.com/5505/11228006956_0a33de14b9_c.jpg) + +*Tetra Field* +Gabriel Dunne +2014 +laser-cut plywood, grasshopper, touchdesigner, python + + +A series of algorhythmically generated projection-mapped truncated tetrahedrons laser-cut from 10mm ply. All vary in size, orientation, truncation, and all have a boolean intersection with the wall as if each object is embedded within it. After manual assembly, the generated geometry is utilized as a base for projection mapping. + +This project was realized as an experiment in creating a fast, efficient solution for a tightly-linked fabrication and projection-mapping workflow. Sculptural form, build plans, material cut files, and projected graphics are all generated from software and parametrically linked. + + +### Software +- [Rhino3D](http://rhino3d.com) +- [Grasshopper3D](http://www.grasshopper3d.com/) + - [gHowl](http://www.grasshopper3d.com/group/ghowl) + - [GhPython](http://www.food4rhino.com/project/ghpython) +- [TouchDesigner](https://www.derivative.ca/) + +### Fabrication Tools +- 4x2 *LaserSaur* Laser Cutter + +### Materials +- 10mm Plywood +- Cyanoacrylate Super Glue +- Neodynimum Magnets +- Angle Brackets +- Gap-filling primer +- White Silicon Caulk +- Gaffers Tape +- L-Brackets + +### Installation Hardware +- LCD Projector +- PC + + + +## Design & Fabrication + +Geometry was created in Grasshopper/Rhino via the gHowl LunchBox toolkit and GhPython. + + +### Supports + +![](https://farm8.staticflickr.com/7179/13884653138_d4d1784c6c_b.jpg) +Gometry and supports layed out for cutting. + +## Laser Cutting + +![Lasering](https://farm4.staticflickr.com/3698/10585763365_b0047bf023_c.jpg) + +Forms were cut with a LaserSaur laser cutter from sheets of lightweight, low-grade 10mm ply. + +![Gluing](https://farm8.staticflickr.com/7308/10585766255_f3b95369ae_c.jpg) + +Panels are superglued together by hand. The interior support structure relies on two angle wedges, which are attached on the interior of the forms. + +![Painting](https://farm8.staticflickr.com/7430/10585792186_6a42ecb673_c.jpg) + +After glue-up multiple coats of white primer is applied. I did a light hand sanding of the laser-cut plywood edges, as the laser-braze is a tough surface to get paint to adhere to, and therefor coat well enough so it appears completely white. Grey would have looked nice and worked well. + +![]({{site.baseurl}}/m/tetrafield/P1020768.jpg) + +## Installation + +Ultra strong neodynium magnets attracted to large-headed nails or screws into the wall were used as a mounting solution. + +![]({{site.baseurl}}/m/tetrafield/P1020770.jpg) + +## Projection Mapping + +Geometry is piped into TouchDesigner via OSC + +![](https://raw.githubusercontent.com/quilime/gh-td/master/screenshots/sender_gh.PNG) + +Once geometry is generated in TouchDesigner, the projected meshes can be aligned onto the sculpture. + +## Graphics + +Shaders applied to the mesh faces. This installation was part of a group show, and I used the audio-input from the sound generated from Sasha's Drum Piece. + +![Mapping]({{site.baseurl}}/m/tetrafield/tetfield-td.png) + +## Final Thoughts + +### Software +This project did not attempt to solve the task of of aligning projections to the physical objects. Because of their simple geometric shape, I had planned to first install them on a surface and register the projections manually. For future iterations, I'd am considering ideas that include embedded fiber-optics in the verticies that would be tracked with an IR camera for a precise, real-time alignment. A huge challenge involved in projection mapping objects is the sheer amount of time it takes to align projections, and creating a real-time mapping solution allows for articulated and or moving installations. + +### Fabrication +This iteration does not include a solution mitered corners, due to the physical tendancies of the laser cutter. However, the lack of mitres simplified the fabrication process considerably and was a benifit -- as this design reveals a channel between faces that makes a perfect area highlight the polygon edge when mapping. + diff --git a/_posts/works/2015-01-21-hyperterra.md b/_posts/works/2015-01-21-hyperterra.md new file mode 100644 index 0000000..9ca0693 --- /dev/null +++ b/_posts/works/2015-01-21-hyperterra.md @@ -0,0 +1,33 @@ +--- +layout: post +title: "Hyper Terra" +date: 2015-01-21 +categories: work featured +author: Gabriel Dunne +bg : #fff +thumb : /m/hyperterra/thumb.png +--- + +![](https://farm9.staticflickr.com/8628/15720136304_8e24c47f87_c.jpg) + +**Hyper Terra** +*CNC milled multi-density fiber board, waterjet birch plywood and aluminum, projector, embedded computer, power supply, c++ graphics software* + +**Process Photos**: [https://www.flickr.com/photos/quilime/sets/72157647947813024/](https://www.flickr.com/photos/quilime/sets/72157647947813024/) +**Instructable**: [http://www.instructables.com/id/Hyper-Terra/](http://www.instructables.com/id/Hyper-Terra/) + + + +![](https://farm8.staticflickr.com/7474/16156387189_5c7f7ffc41_c.jpg) + +![](/m/hyperterra/hyper-terra-by-gabriel-dunne-photo-by-charlie-nordstrom.png) + +photo by Charlie Nordstrom + +![](https://farm8.staticflickr.com/7570/16297213772_584be003b2_c.jpg) + +![](https://farm8.staticflickr.com/7515/16316613586_e540698489_b.jpg) + + + + diff --git a/about-print.md b/about-print.md new file mode 100644 index 0000000..f331182 --- /dev/null +++ b/about-print.md @@ -0,0 +1,7 @@ +--- +layout: print +title: about +--- + +{% include about.md %} + diff --git a/about.md b/about.md new file mode 100644 index 0000000..61bd160 --- /dev/null +++ b/about.md @@ -0,0 +1,13 @@ +--- +layout: default +title: about +--- + +
+print +
+ + + +{% include about.md %} + diff --git a/archive-c.html b/archive-c.html new file mode 100644 index 0000000..9525db0 --- /dev/null +++ b/archive-c.html @@ -0,0 +1,25 @@ +--- +layout: default +title: archive +--- + +{% include archive-sort.html %} + +
+{% for category in site.categories %} +

{{ category | first }}

+ +{% endfor %} + +

∞

+
  • +

    PAST WORK

    +
  • + +
    diff --git a/archive-d.html b/archive-d.html new file mode 100644 index 0000000..b6e4183 --- /dev/null +++ b/archive-d.html @@ -0,0 +1,52 @@ +--- +layout: default +title: archive +--- + +{% include archive-sort.html %} + + + + + diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..dc5104c --- /dev/null +++ b/blog/index.html @@ -0,0 +1,37 @@ +--- +layout: default +title: blog +--- + + +{% for post in paginator.posts %} + +

    {{ post.title }}

    +

    {{ post.date | date: "%Y/%m/%d" }}

    + +
    + {{ post.content }} +
    + +{% endfor %} + + + + + +{% endfor %} diff --git a/css/gdsans.ttf b/css/gdsans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7c69a6b4077c461ca2f7f81a2fac2760353076fe GIT binary patch literal 6084 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 E05B+d?*IS* literal 0 HcmV?d00001 diff --git a/css/letter_gothic.ttf b/css/letter_gothic.ttf new file mode 100755 index 0000000000000000000000000000000000000000..75b31b1b36d6ffaef4a8b9b5d34286b8f51d935a GIT binary patch literal 43968 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 K>=MU)@cwVQ=8B;J literal 0 HcmV?d00001 diff --git a/css/main.css b/css/main.css new file mode 100755 index 0000000..a3db647 --- /dev/null +++ b/css/main.css @@ -0,0 +1,273 @@ +@font-face +{ + font-family: lettergothic; + src: url(letter_gothic.ttf); +} + +body { + font-size:12px; + line-height:1.8em; + letter-spacing: 0.02em; +} +h1, h2, h3 { + text-transform: uppercase; +} +h1, h2, h3, h4, h5, h6 { + font-family:lettergothic; + /*font-size: 1em;*/ + color:#000; + font-weight:bold; + margin: 1em 0; + border:0; +} +h1 { + margin:0em 0 1em 0; + line-height:1em; + font-size:2em; + font-weight:normal; +} +h1 a { + text-decoration:none; +} +h2 { + margin:3em 0 2em 0; + font-size:1.5em; + color: #aaa; +} +.post h2::before, .post h2::after +{ + /*content:" ---- ";*/ +} +.site > h2 { + margin:2em 0; +} +h3:first-child, +h2:first-child { + margin-top:0; +} +h3 { + font-size:1em; + margin-bottom:0em; + color:#999; + font-weight:normal; +} + + + +p { margin: 1em 0; } + +a { + color: #000; + font-weight:bold; + text-decoration:none; +} +a:hover { + color: #aaa; + text-decoration:none; +} +/*a:visited { color: #000; }*/ + +blockquote { + padding:2em; + line-height:2em; + font-style: italic; +} + +p { text-align:left; } + +header { + margin-bottom:2em; + position:absolute; + top: 2em; + left: 1em; +} + +.thumbs, .thumbs li { + margin:0; + list-style-type:none; + padding:0; +} +.thumbs li { + /*display:inline-block;*/ + margin:2em 0 4em 0; + max-width:460px; +} +.thumbs li > a { + display:block; + text-decoration: none; + margin-top:0.5em; +} +.thumb { + width:460px; + height:200px; + background:#000; + overflow:hidden; + text-align:center; +} + +.img { + line-height:0; + display:inline-block; + min-width:100px; + min-height:100px; + background:#aaa; +} + + +.posts { + margin:0; + padding:0; + list-style-type: none; + margin-bottom: 4em; +} +.posts h1 { +} +.posts h2 { + margin:0; + padding:0; + } +.posts .date { + margin-top:2em; + margin-bottom:1em; +} + +ul.index { + margin:0; + padding:0; + list-style-type: none; + margin-top:0.5em !important; + padding-top:0.5em !important; +} +ul.index .date { + position:relative; +} +ul.index .date:first-child { + margin-top:0; +} +ul.index li { +} +.btp { + display:none; + position:fixed; + bottom:1em; + left:1em; +} + +.archive-sort { +} +.archive-sort a { + text-decoration: underline; +} + + +/*****************************************************************************/ +/* +/* Site +/* +/*****************************************************************************/ + +.site { + margin: 0em 0 3em 18em; + padding: 0 0 0 0em; + max-width: 800px; + position:absolute; + top:1em; +} +/*@media (max-width: 800px) { + .site { + padding:0; + margin: 13em 0 2em 0; + } +}*/ + + +.footer { + text-align:center; + color: #999; + margin: 6em 0 2em 0; +} + +.home { + position:absolute; + top:24px; + left:12px; + margin: 0; + padding: 0; +} +.home a { + +} +.nav { + position:absolute; + top:1em; + left:1em; + display:block; + height:2em; +} +.nav ul { + text-transform: uppercase; + font-family:lettergothic; + font-size:1.25em; + line-height:1.4em; +} +.nav ul, .nav ul li { + margin:0; + padding:0; + list-style-type:none; +} + + + + + +/* Posts */ +.post { + margin-top:2em; + padding-bottom:3em; + margin-bottom:3em; +} +.post pre { + border: 1px solid #ddd; + padding: 0 .4em; + background-color:#fff; +} +.post ul, .post ol { + margin-left: 1.35em; +} +.post pre { + background-color: #ddd; + padding:1em; +} +.post a { + text-decoration: underline; +} +.post p img { + max-width:800px; + margin:2em 0; + display: block; +} +/* code */ +.post code { + border: 1px solid #ddd; + color:#000; + padding: .2em .4em; + border-radius:0.2em; +} +.post pre code { + border: none; +} +.post pre.terminal { + border: 1px solid #000; + background-color: #333; + color: #FFF; +} +.post pre.terminal code { + background-color: #333; +} + +.pagination { + text-align:center; + margin-bottom:4em; +} + + diff --git a/css/marx.css b/css/marx.css new file mode 100755 index 0000000..1a3bef9 --- /dev/null +++ b/css/marx.css @@ -0,0 +1,461 @@ +:root { + box-sizing: border-box; + cursor: default; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, 'Lucida Grande', sans-serif; + line-height: 1.4; + -ms-overflow-style: -ms-autohiding-scrollbar; + overflow-y: scroll; + text-rendering: optimizeLegibility; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + text-size-adjust: 100%; } + +audio:not([controls]) { + display: none; } + +details { + display: block; } + +input[type="number"] { + width: auto; } +input[type="search"] { + -webkit-appearance: textfield; } + input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +main { + display: block; } + +summary { + display: block; } + +pre { + overflow: auto; } + +progress { + display: inline-block; } + +small { + font-size: 75%; } + +big { + font-size: 125%; } + +template { + display: none; } + +textarea { + overflow: auto; + resize: vertical; } + +[hidden] { + display: none; } + +[unselectable] { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +*, ::before, ::after { + border-style: solid; + border-width: 0; + box-sizing: inherit; } + +* { + font-size: inherit; + line-height: inherit; + margin: 0; + padding: 0; } + +::before, ::after { + text-decoration: inherit; + vertical-align: inherit; } + +a { + text-decoration: none; } + +audio, canvas, iframe, img, svg, video { + vertical-align: middle; } + +button, input, select, textarea { + background-color: transparent; + border: .1rem solid #ccc; + color: inherit; + font-family: inherit; + font-style: inherit; + font-weight: inherit; + min-height: 1.4em; } + +code, kbd, pre, samp { + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, monospace; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +::-moz-selection { + background-color: #b3d4fc; + text-shadow: none; } + +::selection { + background-color: #b3d4fc; + text-shadow: none; } + +button::-moz-focus-inner { + border: 0; } + +@media screen { + [hidden~="screen"] { + display: inherit; } + [hidden~="screen"]:not(:active):not(:focus):not(:target) { + clip: rect(0 0 0 0) !important; + position: absolute !important; } } + +body { + color: #444; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, 'Lucida Grande', sans-serif; + font-size: 1.6rem; + font-style: normal; + font-weight: 400; } + +p { + margin: 0 0 1.6rem; } + +h1, h2, h3, h4, h5, h6 { + font-family: 'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, 'Lucida Grande', sans-serif; + margin: 2rem 0 1.6rem; } + +h1 { + border-bottom: .1rem solid rgba(0, 0, 0, 0.2); + font-size: 3.6rem; + font-style: normal; + font-weight: 500; } + +h2 { + font-size: 3rem; + font-style: normal; + font-weight: 500; } + +h3 { + font-size: 2.4rem; + font-style: normal; + font-weight: 500; + margin: 1.6rem 0 0.4rem; } + +h4 { + font-size: 1.8rem; + font-style: normal; + font-weight: 600; + margin: 1.6rem 0 0.4rem; } + +h5 { + font-size: 1.6rem; + font-style: normal; + font-weight: 600; + margin: 1.6rem 0 0.4rem; } + +h6 { + color: #777; + font-size: 1.4rem; + font-style: normal; + font-weight: 600; + margin: 1.6rem 0 0.4rem; } + +small { + color: #777; } + +pre { + background: #efefef; + color: #444; + display: block; + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; + font-size: 1.4rem; + margin: 1.6rem 0; + padding: 1.6rem; + word-break: break-all; + word-wrap: break-word; } + +code { + background: #efefef; + color: #444; + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; + font-size: 1.4rem; + word-break: break-all; + word-wrap: break-word; } + +a { + color: #1271db; + -webkit-transition: .25s ease; + transition: .25s ease; } + a:hover, a:focus { + text-decoration: none; } + +dl { + margin-bottom: 1.6rem; } + +dd { + margin-left: 4rem; } + +ul, ol { + margin-bottom: 0.8rem; + padding-left: 2rem; } + +blockquote { + border-left: .2rem solid #1271db; + font-family: Georgia, Times, 'Times New Roman', serif; + font-style: italic; + margin: 1.6rem 0; + padding-left: 1.6rem; } + +figcaption { + font-family: Georgia, Times, 'Times New Roman', serif; } + +html { + font-size: 62.5%; } + +body { + padding: 0; } + +main, header, footer, article, section, aside, details, summary { + display: block; + height: auto; + margin: 0 auto; + width: 100%; } + +main { + display: block; + margin: 0 auto; + max-width: 76.8rem; + padding: 0 1.6rem 1.6rem; } + +article { + clear: left; + display: inline-block; + float: left; + margin-bottom: 1.6rem; + max-width: calc(60% - 1rem); } + +aside { + clear: right; + display: inline-block; + float: right; + margin-bottom: 1.6rem; + max-width: calc(40% - 1rem); } + +section { + clear: both; + display: inline-block; + float: left; + margin-bottom: 1.6rem; + max-width: 100%; } + +footer { + border-top: .1rem solid rgba(0, 0, 0, 0.2); + clear: both; + display: inline-block; + float: left; + max-width: 100%; + padding: 1rem 0; + text-align: center; } + +hr { + border-top: .1rem solid rgba(0, 0, 0, 0.2); + display: block; + margin-bottom: 1.6rem; + width: 100%; } + +img { + height: auto; + max-width: 100%; + vertical-align: baseline; } + +@media screen and (max-width: 40rem) { + article, section, aside { + clear: both; + display: block; + max-width: 100%; } + img { + margin-right: 1.6rem; } } + +input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"], select { + border: .1rem solid #ccc; + border-radius: 0; + display: inline-block; + padding: 0.8rem; + vertical-align: middle; } + +input:not([type]) { + -webkit-appearance: none; + background-clip: padding-box; + background-color: #fff; + border: .1rem solid #ccc; + border-radius: 0; + color: #444; + display: inline-block; + padding: 0.8rem; + text-align: left; } + +input[type="color"] { + padding: 0.8rem 1.6rem; } + +input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus, select:focus, textarea:focus { + border-color: #b3d4fc; } + +input:not([type]):focus { + border-color: #b3d4fc; } + +input[type="radio"], input[type="checkbox"] { + vertical-align: middle; } + +input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { + outline: .1rem solid thin #444; } + +input[type="text"][disabled], input[type="password"][disabled], input[type="email"][disabled], input[type="url"][disabled], input[type="date"][disabled], input[type="month"][disabled], input[type="time"][disabled], input[type="datetime"][disabled], input[type="datetime-local"][disabled], input[type="week"][disabled], input[type="number"][disabled], input[type="search"][disabled], input[type="tel"][disabled], input[type="color"][disabled], select[disabled], textarea[disabled] { + background-color: #efefef; + color: #777; + cursor: not-allowed; } + +input:not([type])[disabled] { + background-color: #efefef; + color: #777; + cursor: not-allowed; } + +input[readonly], select[readonly], textarea[readonly] { + background-color: #efefef; + border-color: #ccc; + color: #777; } + +input:focus:invalid, textarea:focus:invalid, select:focus:invalid { + border-color: #e9322d; + color: #b94a48; } + +input[type="file"]:focus:invalid:focus, input[type="radio"]:focus:invalid:focus, input[type="checkbox"]:focus:invalid:focus { + outline-color: #ff4136; } + +select { + background-color: #fff; + border: .1rem solid #ccc; } + +select[multiple] { + height: auto; } + +label { + line-height: 2; } + +fieldset { + border: 0; + margin: 0; + padding: 0.8rem 0; } + +legend { + border-bottom: .1rem solid #ccc; + color: #444; + display: block; + margin-bottom: 0.8rem; + padding: 0.8rem 0; + width: 100%; } + +textarea { + border: .1rem solid #ccc; + border-radius: 0; + display: block; + margin-bottom: 0.8rem; + padding: 0.8rem; + vertical-align: middle; } + +input[type=submit], button { + background-color: transparent; + border: .2rem solid #444; + border-radius: 0; + color: #444; + cursor: pointer; + display: inline-block; + margin-bottom: 0.8rem; + margin-right: 0.4rem; + padding: 0.8rem 1.6rem; + text-align: center; + text-decoration: none; + text-transform: uppercase; + -webkit-transition: .25s ease; + transition: .25s ease; + -webkit-user-drag: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + vertical-align: baseline; } + input[type=submit] a, button a { + color: #444; } + +input[type=submit]::-moz-focus-inner, button::-moz-focus-inner { + padding: 0; } + +input[type=submit]:hover, button:hover { + background: #444; + border-color: #444; + color: #fff; } + input[type=submit]:hover a, button:hover a { + color: #fff; } + +input[type=submit]:active, button:active { + background: #6a6a6a; + border-color: #6a6a6a; + color: #fff; } + input[type=submit]:active a, button:active a { + color: #fff; } + +input[type=submit]:disabled, button:disabled { + box-shadow: none; + cursor: not-allowed; + opacity: .40; } + +nav ul { + list-style: none; + margin: 0; + padding: 0; + padding-top: 1.6rem; + text-align: center; } + nav ul li { + display: inline; } +nav a { + border-bottom: .2rem solid transparent; + color: #444; + padding: 0.8rem 1.6rem; + text-decoration: none; + -webkit-transition: .25s ease; + transition: .25s ease; } + nav a:hover { + border-color: rgba(0, 0, 0, 0.2); } + nav a:active { + border-color: rgba(0, 0, 0, 0.56); } + +table { + margin-bottom: 1.6rem; } + +caption { + padding: 0.8rem 0; } + +thead th { + background: #efefef; + color: #444; } + +tr { + background: #fff; + margin-bottom: 0.8rem; } + +th, td { + border: .1rem solid #ccc; + padding: 0.8rem 1.6rem; + text-align: center; + vertical-align: inherit; } + +tfoot tr { + background: none; } + +tfoot td { + color: #efefef; + font-size: 0.8rem; + font-style: italic; + padding: 1.6rem 0.4rem; } + diff --git a/css/simplex.ttf b/css/simplex.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0197002dd4a95c12e551a8bc1fde0368f7fd077a GIT binary patch literal 127979 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 + + +## [Claves Angelicae](https://claves-angelicae.github.io/dossier/) + + + + + + +## [NAAG XY](/naagxy/) + + + +NAAG XY +Gabriel Dunne [gabrieldunne.com](http://gabrieldunne.com) +Vishal K Dar [vishalkdar.com](http://vishalkdar.com) +EPS foam, plaster of paris, custom software, multiple projectors, computer +14' x 8' x 4' + +(mobile phone documentation footage) + +Now open at the Contemporary Jewish Museum, San Francisco +NEAT: New Experiments in Art and Technology +Oct 15, 2015 – Jan 17, 2016 + +more info: [http://www.thecjm.org/on-view/currently/neat-new-experiments-in-art-and-technology/about](http://www.thecjm.org/on-view/currently/neat-new-experiments-in-art-and-technology/about) + +
    + + + + +## [NAAG Z](/naagz/) + + + +Gabriel Dunne [gabrieldunne.com](http://gabrieldunne.com) +Vishal K Dar [vishalkdar.com](http://vishalkdar.com) + +Sculpture, 4ch Projection +4' x 4' x 14' +Plaster of Paris, Styrofoam, Steel, Custom Software, GLSL, Computer, Multiple Projectors +Mumbai, 2015 + +It is as if mysterious forces have spontaneously combusted and ignited to produce a marvelous emanation of the cosmic in our midst. Who knows what corners of the universe inform this luminous entity, what hidden histories of the people are recounted in its mysterious ebbs and flows? +Light makes the remembered disappear and in its glow we glimpse perhaps the finest movements of our desires hidden deep within ourselves, the sticky flows of habitual but subtle lust by which we attach ourselves to reality in order to feel organically alive. + +When Vishal K Dar and Gabriel Dunne first presented NAAG in a small space in Mehrauli, India, on the fringe of the community’s development, the children of this neighborhood had immediately made up their minds about the creature's true nature and the reasons for its appearance. To them it was a wish fulfilling sea-serpent, silent and evocative, which had found abode in this unused space to hibernate during the cold winter months of Delhi. + +Vishal K Dar and Gabriel Dunne challenge the notion of sculpture as a static object. The organic sculptural form has its roots in CG and CAD software and is further skinned with generative algorithm. Various parts of the sculpture move differently, as if a form had coiled onto itself. The viewer is liberated since the sculpture does not rely on prescribed grammar and the experience helps resolve a paradigm shift in our viewing registers. + + +## [HYPER TERRA](/hyperterra/) + + + + + +**Hyper Terra** +An abstract landscape illuminated by projection-mapped light and shadows calculated from solar and lunar positions. +*Waterjet birch plywood and aluminum, cnc milled MDF, projector, embedded computer, power supply, c++ graphics software* +Process Photos: [https://www.flickr.com/photos/quilime](https://www.flickr.com/photos/quilime) +Instructable: [http://www.instructables.com/id/Hyper-Terra/](http://www.instructables.com/id/Hyper-Terra/) + +Autodesk [Artist In Residence Show](http://www.autodesk.com/artist-in-residence/home) Pier9, San Francisco Jan 22—24 2015 + + + + + + + + + +

    + +

    \ No newline at end of file diff --git a/keybase.txt b/keybase.txt new file mode 100644 index 0000000..21763cd --- /dev/null +++ b/keybase.txt @@ -0,0 +1,75 @@ +================================================================== +https://keybase.io/gld +-------------------------------------------------------------------- + +I hereby claim: + + * I am an admin of http://gabrieldunne.com + * I am gld (https://keybase.io/gld) on keybase. + * I have a public key with fingerprint 9044 71A8 B484 7E6D 9745 23DC 4D10 8263 BE57 EC8E + +To do so, I am signing this object: + +{ + "body": { + "key": { + "eldest_kid": "0101797b4258d782f07464f0f41cd6874112756510a6a3d836b2ea7995b4ea09a7800a", + "fingerprint": "904471a8b4847e6d974523dc4d108263be57ec8e", + "host": "keybase.io", + "key_id": "4d108263be57ec8e", + "kid": "0101797b4258d782f07464f0f41cd6874112756510a6a3d836b2ea7995b4ea09a7800a", + "uid": "7a984e465a196d606d25b848b170ca19", + "username": "gld" + }, + "revoke": { + "sig_ids": [ + "8a2eab9d2a5319168222c06d426bc85cc4580ca355508002018f0cbd4ca9000a0f" + ] + }, + "service": { + "hostname": "gabrieldunne.com", + "protocol": "http:" + }, + "type": "web_service_binding", + "version": 1 + }, + "ctime": 1459961862, + "expire_in": 157680000, + "prev": "db98589963ecaa8731610b4757a79b7801bc85095b49768bc9c56897a4638093", + "seqno": 9, + "tag": "signature" +} + +which yields the signature: + +-----BEGIN PGP MESSAGE----- +Version: Keybase OpenPGP v2.0.53 +Comment: https://keybase.io/crypto + +yMJqAnicrZJbaFRHGMdPagxrINhGK9pUH6ZgSgzLzDlz3UKrUtoGWnuBNtoLy8yc +2eSQ9Zz17Nm1UVabNBR8aEm1KioJ9aGUCEIFURHtZUnjQ6BpUZQQCupD+6CiQYMK +Xjon1Lc+9mmYmf/3/37ff2a8ZYHT3HDlWHtn1/O/TjdM/jJbcboXrm3aDlTk94Pc +dtBn5hdT9E05yfcFPsgBiCBiginsEu4z7hYgwxQXYAEj7VPOMEIuI5QgKKn0fO5R +5RrJhCAKGwmFZBxCCTpBIQh7TFyKgzCxtgJizJDkCnPMDPUFw8T1fI19BLlLPWUI +M5obW9gbldMKC6dk2WSDyJ7ZTX4e7z/0/zN3Zd6OScGxwZRIJKhPIfVdojjmCjGo +7VkqLJs4lJuNVfcUfVDrBLGpRn0mjbQc9FjeMsh9BLi0fZTwXUk8JBDlrutq64dd +qjQnWmPCraVHCIEWwYWIF6BWPtZSQIsEC+AT622bVQM9b54G9KSxVHFg368Shiar +o80WqxRHSaSjor3tTZJSLgVL+kupeqtR+X998ioIfftCtqBq4nIQhSCHrFInQWqM +MBGCIk7dTmA+LQWxyQepgjBqGSFM25iqtfSV4IRbrWe0lJx5iCKoMCPMZqtspigd +EqYpC1urtNCEcsEkph6HwgPpZFvCCOSExZQ91tJmF8qkEhtQq//8caPT0Ow0LXwq +/blO86Knn/zn2vsZZ+zqhW8cD578sGV0/9zuekd2esHYzbYNF5e+NTMZoaG5h5eW +fbCov7rvB3zy2zd2Dy6Ofp/J6CVTE8/w7MNrL7zzXXbjoVvV6Ehp60t/nxj6o3u6 +tmYbZHvXDXRnvrxzeeang2C4tevusHPut8/uLxt6tlJfuqntcEf7veUNqPHz6ump +1wr1owOP4hd3frXqbnt5cLB46fD6ubd3fT88+urYK6t790xdm5xIzhnn3dlVmaNd +j5fkdsDVI3/tHTg//t6mzOvNG/Y9py6eGT//4/GRR+JB08b1O1aevXBj28SpLw60 +zqzrH5FT93eNtrR13Ab1r9f8OXi9dWj2zZdXPNjT2Dt85PKJ2khxyz+cBlKS +=VW24 +-----END PGP MESSAGE----- + +And finally, I am proving ownership of this host by posting or +appending to this document. + +View my publicly-auditable identity here: https://keybase.io/gld + +================================================================== + diff --git a/news.md b/news.md new file mode 100644 index 0000000..6ddf934 --- /dev/null +++ b/news.md @@ -0,0 +1,24 @@ +--- +layout: default +title: news +--- + + + + +
    +
    +
    + + +
    +
    +
    +
    +
    + + diff --git a/past.md b/past.md new file mode 100644 index 0000000..9b5d536 --- /dev/null +++ b/past.md @@ -0,0 +1,14 @@ +--- +layout: default +title: past work +date: 1999-01-01 +categories: archive featured +--- + +Past Work / Websites + +[2013](http://www.2013.gabrieldunne.com/projects/) +[2008](http://portfolio.quilime.com/2008/) +[2007](http://portfolio.quilime.com/new/port.php) +[2005](http://portfolio.quilime.com/recent.html) +[1999—2004](http://portfolio.quilime.com/archive/) \ No newline at end of file diff --git a/projects.md b/projects.md new file mode 100644 index 0000000..a90685c --- /dev/null +++ b/projects.md @@ -0,0 +1,23 @@ +--- +layout: default +title: Projects +--- + +
      + +{% for post in site.categories.project %} +{% if post.url %} + +
    • + +
      +
      + {{ post.title }} +
      +
    • + +{% endif %} +{% endfor %} + +
    + diff --git a/publish-nomedia.sh b/publish-nomedia.sh new file mode 100755 index 0000000..90e136f --- /dev/null +++ b/publish-nomedia.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +jekyll build + +# ssh quilime@quilime.com 'rm -rf /home/quilime/gabrieldunne-site/process' +rsync -avz _site/ quilime@quilime.com:/home/quilime/gabrieldunne.com-static/ --delete --exclude "m" diff --git a/publish.sh b/publish.sh new file mode 100755 index 0000000..9d83a4e --- /dev/null +++ b/publish.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +jekyll build + +# ssh quilime@quilime.com 'rm -rf /home/quilime/gabrieldunne-site/process' +rsync -avz _site/ quilime@quilime.com:/home/quilime/gabrieldunne.com-static/ --delete diff --git a/works.html b/works.html new file mode 100644 index 0000000..95f968f --- /dev/null +++ b/works.html @@ -0,0 +1,23 @@ +--- +layout: default +title: Works +--- + + + -- 2.34.1