_The Noble Squid

ASK ME YOUR QUESTION!   About   

Infodump direct from my brain

prostheticknowledge:

Ceramic 3D Printer

Artist Jonathan Keep has put together a 3D printer to produce digital objects out of clay, and has put together a document to build one:

Based on the delta type of 3D printer my aim has been to use parts that can either be made with basic DIY tools and skills, or ordered off the internet. The design is specifically for printing in clay but could be adapted to work with other materials. Many other self build 3D printers use parts printed in plastic but with this project I did not want to be reliant on already having access to a 3D printer.

More Here

Looking at Jonathan’s website (in particular the ‘Digital Pots' section), you will see various series based on various ideas. There is the Random Growth of generative forms, Sound Surface based on musical audio data, and other computational methods.

More examples of work can be found here

— 11 hours ago with 653 notes

spring-of-mathematics:

Mathematically Correct Breakfast - How to Slice a Bagel into Two Linked Halves. If a torus is cut by a Möbius strip it will split up into to interlocking rings.

It is not hard to cut a bagel into two equal halves which are linked like two links of a chain. Figure 1:

  1. To start, you must visualize four key points.  Center the bagel at the origin, circling the Z axis. A is the highest point above the +X axis.  B is where the +Y axis enters the bagel. C is the lowest point below the -X axis.  D is where the -Y axis exits the bagel.
  2. These sharpie markings on the bagel are just to help visualize the geometry and the points.  You don’t need to actually write on the bagel to cut it properly.
  3. The line ABCDA, which goes smoothly through all four key points, is the cut line.  As it goes 360 degrees around the Z axis, it also goes 360 degrees around the bagel.
  4. The red line is like the black line but is rotated 180 degrees (around Z or through the hole). An ideal knife could enter on the black line and come out exactly opposite, on the red line. But in practice, it is easier to cut in halfway on both the black line and the red line. The cutting surface is a two-twist Mobius strip; it has two sides, one for each half.
  5. After being cut, the two halves can be moved but are still linked together, each passing through the hole of the other.

It is much more fun to put cream cheese on these bagels than on an ordinary bagel. In additional to the intellectual stimulation, you get more cream cheese, because there is slightly more surface area.
Topology problem: Modify the cut so the cutting surface is a one-twist Mobius strip. (You can still get cream cheese into the cut, but it doesn’t separate into two parts). See more at: Mathematically Correct Breakfast: How to Slice a Bagel into Two Linked Halves by George W. Hart.

Images: How to Slice a Bagel into Two Linked Halves by George W. Hart - Cutting bagels into linked halves on Mathematica. - Interlocking Bagel Rings

Maybe, that’s one of the reasons why I love bagel :)

(via thisistheverge)

— 1 day ago with 3944 notes
forgethowtotalk:

//unwinding_140427bArrayList<PointPosition> pointPosition = new ArrayList();float lposX, lposY;boolean alternate = true;int threshold = 135;int width = 1000/2;int[] directions = {  (width*-1)-1,  (width*-1)+1,  width+1,  width-1};void setup(){  background(255);  size(width,1500/2);  startScatter();}void draw(){  fill(255,200);  stroke(255,200);  rect(0,0,width,height);  int i = 0;  for(PointPosition p:pointPosition){    i++;    p.tpos.x = p.tpos.x+cos(millis()/3)*width/i*12;    p.tpos.y = p.tpos.y+sin(millis())*width/i*12;    p.update();    stroke(0,100);    p.render();    float pDist = dist(lposX,lposY,p.pos.x,p.pos.y);    if (pDist < width/2) {      stroke(0,20);      line(lposX,lposY,p.pos.x,p.pos.y);    }    lposX = p.pos.x;    lposY = p.pos.y;  }  loadPixels();    for (int k=0; k<pixels.length; k++) {      int pModifier = selectRandom(directions);      if (k > width+1 && k < pixels.length-width-1) {        if (brightness(pixels[k]) == threshold) {          pixels[k] = pixels[k] » 56;         } else if (brightness(pixels[k]) > threshold) {//        } else {          pixels[k+pModifier] = pixels[k];        }      }    }  updatePixels();  int minThreshold = 1;  int maxThreshold = 153;  threshold = setThreshold(threshold,minThreshold,maxThreshold);  filter(BLUR,0.58);}class PointPosition {  PVector pos = new PVector();  PVector tpos = new PVector();  void update(){    pos.lerp(tpos,0.01);  }  void render(){    point(pos.x,pos.y);  }}int setThreshold(int threshold, int minThreshold, int maxThreshold) {  if (threshold < maxThreshold && threshold > minThreshold && alternate) {    threshold++;  } else if (threshold < maxThreshold && threshold > minThreshold) {    threshold—;  } else if (alternate) {    threshold = maxThreshold;    alternate = !alternate;  } else {    threshold = minThreshold;    alternate = !alternate;  }  return threshold;}int selectRandom(int[] cases){  int selected = int(random(cases.length));  int output = cases[selected];  return output;}  void startScatter(){  for (int i=0; i<width; i++) {    PointPosition p = new PointPosition();      lposX = width/2+cos(i)*width/3;      lposY = height/2+sin(i)*width/3;      p.pos.x = width/2;      p.pos.y = height/2;      p.tpos.x = width/2+cos(i)*width/3;      p.tpos.y = height/2+sin(i)*width/3;    pointPosition.add(p);  }}

Oooooooooooo!

forgethowtotalk:

//unwinding_140427b
ArrayList<PointPosition> pointPosition = new ArrayList();
float lposX, lposY;
boolean alternate = true;
int threshold = 135;
int width = 1000/2;
int[] directions = {
  (width*-1)-1,
  (width*-1)+1,
  width+1,
  width-1
};

void setup(){
  background(255);
  size(width,1500/2);
  startScatter();
}

void draw(){
  fill(255,200);
  stroke(255,200);
  rect(0,0,width,height);
  int i = 0;
  for(PointPosition p:pointPosition){
    i++;
    p.tpos.x = p.tpos.x+cos(millis()/3)*width/i*12;
    p.tpos.y = p.tpos.y+sin(millis())*width/i*12;
    p.update();
    stroke(0,100);
    p.render();
    float pDist = dist(lposX,lposY,p.pos.x,p.pos.y);
    if (pDist < width/2) {
      stroke(0,20);
      line(lposX,lposY,p.pos.x,p.pos.y);
    }
    lposX = p.pos.x;
    lposY = p.pos.y;
  }
  loadPixels();
    for (int k=0; k<pixels.length; k++) {
      int pModifier = selectRandom(directions);
      if (k > width+1 && k < pixels.length-width-1) {
        if (brightness(pixels[k]) == threshold) {
          pixels[k] = pixels[k] » 56;
        } else if (brightness(pixels[k]) > threshold) {
//
        } else {
          pixels[k+pModifier] = pixels[k];
        }
      }
    }
  updatePixels();
  int minThreshold = 1;
  int maxThreshold = 153;
  threshold = setThreshold(threshold,minThreshold,maxThreshold);
  filter(BLUR,0.58);
}

class PointPosition {
  PVector pos = new PVector();
  PVector tpos = new PVector();
  void update(){
    pos.lerp(tpos,0.01);
  }
  void render(){
    point(pos.x,pos.y);
  }
}

int setThreshold(int threshold, int minThreshold, int maxThreshold) {
  if (threshold < maxThreshold && threshold > minThreshold && alternate) {
    threshold++;
  } else if (threshold < maxThreshold && threshold > minThreshold) {
    threshold—;
  } else if (alternate) {
    threshold = maxThreshold;
    alternate = !alternate;
  } else {
    threshold = minThreshold;
    alternate = !alternate;
  }
  return threshold;
}

int selectRandom(int[] cases){
  int selected = int(random(cases.length));
  int output = cases[selected];
  return output;
}
 
void startScatter(){
  for (int i=0; i<width; i++) {
    PointPosition p = new PointPosition();
      lposX = width/2+cos(i)*width/3;
      lposY = height/2+sin(i)*width/3;
      p.pos.x = width/2;
      p.pos.y = height/2;
      p.tpos.x = width/2+cos(i)*width/3;
      p.tpos.y = height/2+sin(i)*width/3;
    pointPosition.add(p);
  }
}

Oooooooooooo!

— 2 days ago with 21 notes
"Processing 3 is all about the editor. We’ve just posted the first alpha: processing.org/download/ More: raw.githubusercontent.com/processing/pro… Please test!"
@ben_fry (via blurrypaths)
— 4 days ago with 13 notes

prostheticknowledge:

Satoshi Kon - Editing Space & Time

Insightful tribute to the great Japanese animator director Satoshi Kon who died 4 years ago this week. Tony Zhou has put together a short video essay to present the sophisticated editing style and scene compositioning of Satoshi which has inspired many well known Hollywood productions - video embedded below:

Four years after his passing, we still haven’t quite caught up to Satoshi Kon, one of the great visionaries of modern film. In just four features and one TV series, he developed a unique style of editing that distorted and warped space and time. Join me in honoring the greatest Japanese animator not named Miyazaki.

More Here

— 5 days ago with 1782 notes
thisistheverge:

Mouth Silence is the sound of your brain roasting
It’s the most horrific mix of the ’80s, ’90s, and today. Imagine the rapture in all its violence and beauty, set to the sound of a trillion angels harmonizing to Third Eye Blind’s “Semi-charmed Life.” Imagine yourself hurdling through a lukewarm, glowing, pearlescent wormhole singing, “I’m not listening when you say goodbye.” It’s glorious. And that’s just the intro.

thisistheverge:

Mouth Silence is the sound of your brain roasting
It’s the most horrific mix of the ’80s, ’90s, and today. Imagine the rapture in all its violence and beauty, set to the sound of a trillion angels harmonizing to Third Eye Blind’s “Semi-charmed Life.” Imagine yourself hurdling through a lukewarm, glowing, pearlescent wormhole singing, “I’m not listening when you say goodbye.” It’s glorious. And that’s just the intro.

— 5 days ago with 155 notes

forgethowtotalk:

//vapor_140723a

Oh yeah!

— 5 days ago with 8 notes

prostheticknowledge:

Render Sketch Game

Tumblr blog featuring 3D graphics created within timed limitations:

RULES

  • - Select a 3d Tool of your Choice
  • - Start with a Cube, Plane, Light and Camera
  • - Set a 10 minute timer
  • - Make something beautiful
  • - Press “Render” when the time runs out
  • - Post with #rendersketchgame tag

If you want to see more examples or submit your own creation, you can go to the rendersketchgame Tumblr here

— 6 days ago with 231 notes

prostheticknowledge:

My Little Pixel Pusher

Simple online image tool by Andrew Benson (aka pixlbrains) lets you visually distort any jpeg file on the web with a digital look. Just click and hold over the image to change the area you wish.

Try it out for yourself here

— 1 week ago with 395 notes
70sscifiart:

Bob Eggleton’s best titled piece: “There Goes the Neighbourhood”

70sscifiart:

Bob Eggleton’s best titled piece: “There Goes the Neighbourhood”

— 1 week ago with 209 notes