New project completed! Play my 7 Day FPS Challenge game, "What is it like to Be a Bat?" http://jrmgriffith.itch.io/what-is-it-like-to-be-a-bat

ellievsbear
One Nice Bug Per Day
YOU ARE THE REASON

titsay

pixel skylines
tumblr dot com

izzy's playlists!
h

blake kathryn

oozey mess
styofa doing anything

Discoholic đĒŠ

noise dept.

â
TVSTRANGERTHINGS
hello vonnie
art blog(derogatory)
Sweet Seals For You, Always
i don't do bad sauce passes

seen from Bulgaria
seen from Hong Kong SAR China

seen from United States

seen from United States

seen from Brazil
seen from United States

seen from Malaysia

seen from United States

seen from Germany
seen from United States
seen from Italy
seen from Spain

seen from United States

seen from United States
seen from United States
seen from United States

seen from Malaysia
seen from Germany

seen from France
seen from United States
@jarmblr
New project completed! Play my 7 Day FPS Challenge game, "What is it like to Be a Bat?" http://jrmgriffith.itch.io/what-is-it-like-to-be-a-bat

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch âĸ No registration required âĸ HD streaming
Been working on a new game for 7 Day FPS: "What is it like to Be a Bat?"
Paper Pirate is OUT on iOS! It's my first ever game. I learned a ton doing it, and I'm ready to jump into the next project! App Store URL: https://itunes.apple.com/us/app/paper-pirate/id918591636?ls=1&mt=8
"Snowflake"

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch âĸ No registration required âĸ HD streaming
Oh hey this blog still exists! Been experimenting with the Gray Scott model of Reaction-Diffusion. It has been a wild ride and I have learned a ton.
Posting and stuff.
I've always been a person torn in multiple directions. I think I am finally starting to make peace with this. I've been working on a unity project rather than processing sketches, so my posting here has been pretty nonexistent. In the meantime, I am also posting at this blog: http://unfetteredequality.wordpress.com/
My Game FX reel for 2014! Reel breakdown available on the vimeo video description.
Taking the sin wave grid from the last post and removing the background refresh draws a straight grid. I thought this was a neat example of getting to glimpse a constant attracting force behind a changing system.
Been thinking a lot about grids -- how we use them, how they shape thinking about certain things. Here's a grid of sin waves.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch âĸ No registration required âĸ HD streaming
Been working on my first ever items for Valve's Dota 2! Stoneworks of the Temple Protector: http://steamcommunity.com/sharedfiles/filedetails/?id=222327591 http://steamcommunity.com/sharedfiles/filedetails/?id=222328759 http://steamcommunity.com/sharedfiles/filedetails/?id=222325253 http://steamcommunity.com/sharedfiles/filedetails/?id=222328128
Holidays over, explorations renewed.
Raincatch
Hold down the mouse button and catch words.
Please upgrade your browser to something new like Google Chrome.
//Made with ProcessingLyon Tumblrify: //http://p5lyon.tumblr.com/ProcessingJSTumblr //English Version: //http://p5lyon.tumblr.com/ProcessingJSTumblrEn String[] wordbank1 = new String[10]; String[] wordbank2 = new String[10]; String[] wordbank3 = new String[10]; String[][] wordbanks = {wordbank1, wordbank2, wordbank3}; RainWord[] rain1 = new RainWord[30]; RainWord[] rain2 = new RainWord[30]; RainWord[] rain3 = new RainWord[30]; color gradientColor1 = 200; color gradientColor2 = 255; int publicTime = 0; //title ScreenWordTop balls = new ScreenWordTop("raincatch", 200); //ScreenWords ScreenWordTop screenTopVariable = new ScreenWordTop(" ", 200); ScreenWordTop screenMidVariable = new ScreenWordTop(" ", 200); ScreenWordTop screenBotVariable = new ScreenWordTop(" ", 200); void setup(){ background(255); size(500,500); frameRate(30); //rotate(HALF_PI); screenTopVariable.time = 201; screenMidVariable.time = 201; screenBotVariable.time = 201; wordbank1[0] = "too many blank words"; wordbank1[1] = "our typed transgressions"; wordbank1[2] = "forgetting is gone"; wordbank1[3] = "clouds both spit and store"; wordbank1[4] = "these words are useless"; wordbank1[5] = "brute, dumb recording"; wordbank1[6] = "let's look at ourselves"; wordbank1[7] = "whispers falling hard"; wordbank1[8] = "next page of nothing"; wordbank1[9] = "next blank distraction"; wordbank2[0] = "another blank page to fill"; wordbank2[1] = "who wrote this showering mess?"; wordbank2[2] = "next page, next link, never full"; wordbank2[3] = "these blanket a deaf landscape"; wordbank2[4] = "to choose your own depression"; wordbank2[5] = "whispers now live forever"; wordbank2[6] = "nothing here is full or warm"; wordbank2[7] = "no new notifications"; wordbank2[8] = "a life spent blindingly full"; wordbank2[9] = "drowning any sense of self"; wordbank3[0] = "here in this word-flood"; wordbank3[1] = "how to be human?"; wordbank3[2] = "and nothing wakes me."; wordbank3[3] = "it's sometimes too much."; wordbank3[4] = "just bubbling stress."; wordbank3[5] = "these are not just words."; wordbank3[6] = "is this emptiness?"; wordbank3[7] = "can we even flee?"; wordbank3[8] = "entertaining death."; wordbank3[9] = "such vacant fullness."; for (int i = 0; i < rain1.length; i++){ int randoWord = int(random(wordbank1.length)); int randoList = int(random(3)); rain1[i] = new RainWord(wordbanks[0][randoWord], i*3-120,-i*20,185,10,350); } for (int i = 0; i < rain2.length; i++){ int randoWord = int(random(wordbank1.length)); int randoList = int(random(3)); rain2[i] = new RainWord(wordbanks[1][randoWord], i*3-120,-i*25,210,8,325); } for (int i = 0; i < rain3.length; i++){ int randoWord = int(random(wordbank1.length)); int randoList = int(random(3)); rain3[i] = new RainWord(wordbanks[2][randoWord], i*3-120,-i*15,170,12,375); } } void draw(){ background(255); gradient(0,0,width, height, gradientColor1, gradientColor2); rotate(HALF_PI); //RainWord Instantiation loops //print(rain1[0].xpos); for (int i = 0; i < rain1.length; i++){ rain1[i].display(); rain1[i].splash(); } for (int i = 0; i < rain2.length; i++){ rain2[i].display(); rain2[i].splash(); } for (int i = 0; i < rain3.length; i++){ rain3[i].display(); rain3[i].splash(); } //rain1[0].display(); //rain1[0].splash(); //ScreenWords //balls.display(); //screenTopVariable.display(); publicTime += 1; if (mousePressed == true){ //noStroke(); //fill(0,0,255,20); //ellipse(mouseX, mouseY, 30, 30); //print(" " + mouseX); //print(" " + mouseY); for (int i = 0; i < rain1.length; i++){ if (-1*mouseX < rain1[i].ypos + 30 && -1*mouseX > rain1[i].ypos -30){ if(mouseY > rain1[i].xpos - 30 && mouseY < rain1[i].xpos + 30){ if (screenTopVariable.time > 200){ screenTopVariable = new ScreenWordTop(rain1[i].word, 240); } } } } for (int i = 0; i < rain2.length; i++){ if (-1*mouseX < rain2[i].ypos + 30 && -1*mouseX > rain2[i].ypos -30){ if(mouseY > rain2[i].xpos - 30 && mouseY < rain2[i].xpos + 30){ if (screenMidVariable.time > 200){ screenMidVariable = new ScreenWordTop(rain2[i].word, 270); } } } } for (int i = 0; i < rain3.length; i++){ if (-1*mouseX < rain3[i].ypos + 30 && -1*mouseX > rain3[i].ypos -30){ if(mouseY > rain3[i].xpos - 30 && mouseY < rain3[i].xpos + 30){ if (screenBotVariable.time > 200){ screenBotVariable = new ScreenWordTop(rain3[i].word, 300); } } } } } screenTopVariable.displayRotate(); screenMidVariable.display(); screenBotVariable.display(); } /*-------------------------------------------------------------------------- GRADIENT GENERATOR --------------------------------------------------------------------------*/ void gradient(int x, int y, float w, float h, color c1, color c2){ noFill(); for (int i = 0; i <= y+h; i++){ float inter = map(i, y, y+h, 0, 1); color c = lerpColor(c1, c2, inter); stroke(c); line(x,i, x+w, i); } } /*---------------------------------------------------------------------------- RAIN WORD CLASS -----------------------------------------------------------------------------*/ class RainWord{ String word; String[] letters; int xpos; int ypos; float rot; int col; int size; int yLimit; int time; float speedMult; RainWord(String word_, int xpos_, int ypos_, int col_, int size_, int yLimit_){ word = word_; letters = new String[word.length()]; for (int i = 0; i < word.length(); i++){ letters[i] = word.substring(i, i+1); } xpos = xpos_; ypos = ypos_; rot = HALF_PI; col = col_; size = size_; yLimit = yLimit_; time = 0; speedMult = random(.5,1); } void display(){ fill(col); //rotate(rot); textSize(size); xpos = xpos + int(speedMult*time*time/160); text(word, xpos, ypos); //time += 2; if (xpos < yLimit){ time+=2; }else{ //print("over"); //this.splash(); xpos = 0 + int(random(-100, -20)); time = 0; //ypos = ypos; ypos = constrain(ypos + int(random(-10,10)), -500, 0); } } void splash(){ //print(xpos); if (xpos > yLimit - 150){ for (int i = 0; i < letters.length; i++){ fill(col + 25); textSize(size); text(letters[i], yLimit + 25 + i*random(2,6)*2, ypos + i*random(2,6)*2); } } } } /*---------------------------------------------------------------------------- SCREEN WORD CLASSES -----------------------------------------------------------------------------*/ class ScreenWordTop{ int xpos; int ypos; String word; int size; int col; float time; ScreenWordTop(String word_, int ypos_){ xpos = 50; ypos = ypos_; size = 20; col = 0; word = word_; } void displayRotate(){ rotate(PI); rotate(HALF_PI); textSize(size); fill(0,0,0, 200-time); text(word, xpos, ypos); time += 2; } void display(){ textSize(size); fill(0,0,0, 200-time); text(word, xpos, ypos); time += 2; } }
Progress on something soon to come
scratch and sniff
Please upgrade your browser to something new like Google Chrome.
//Made with ProcessingLyon Tumblrify: //http://p5lyon.tumblr.com/ProcessingJSTumblr //English Version: //http://p5lyon.tumblr.com/ProcessingJSTumblrEn Backgrounder[] grounds = new Backgrounder[10]; float time = 0; void setup(){ size(400,800); frameRate(30); for (int i = 0; i < grounds.length; i++){ grounds[i] = new Backgrounder(0); } background(255, 255, 255, 255); } void draw(){ //background(255); int intTime = constrain(int(time), 0, 9); grounds[intTime].col = 30; if (mousePressed == true){ fill(0); ellipse(mouseX,mouseY,30,30); } textSize(15); fill(255); text("I feel inadequate today.", 200, 50); text("I feel inadequate today.", 50, 200, 80, 200); //text("I feel inadequate today.", 250, 50); text("I feel inadequate today.", 150, 500, 50, 300); text("Being called pretentious hurts a lot.", 250, 300, 100, 300); text("I need support sometimes too.", 80, 690); //text("I feel inadequate today.", 250, 50); text("I feel inadequate today.", 250, 730, 150, 300); //text("That word hurts the most.", 200,440, 100,100); grounds[intTime].display(); if (time < 10.1){ time += .01; }else{ time = 0; } fill(190); text("My brain is foggy", 200,400, 100,100); } class Backgrounder{ int col; Backgrounder(int col_){ col = col_; } void display(){ //delay(200); noStroke(); fill(255, 255, 255, col); rect(0,0, width, height); } }

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch âĸ No registration required âĸ HD streaming
Francois Jullien's "Incitement"
"Through emotion and incitement, consciousness gains accesss to the aspects of the world that moved it... "With incitement, the poetic process unfolds in perfect immanence... "... all the elements of the world are already in a relationship of affinity and naturally interweave their webs of attraction. The same tension that links the consciousness and the landscape runs through the undulation of billows and waves and makes clouds melt into one another. " According to the Chinese, it is from this flow, which makes the world vibrate and stirs interiority -- not from the breath of inspiration, not from some divine pneuma that brings us to the limits of ourselves -- that the poetic word arises. This flux inhabits the poem's incitatory mode, sparking a meaning above and beyond the words. And this incitatory mode, unlike the analogical mode, is something Western rhetoric does not have." -- Francios Jullien, Detour and Access, "Between Emotion and Landscape" Some might rightfully bristle at notes of cultural essentialism in this passage, but I'd invite the reader to keep in mind that Jullien's entire project functions by trying to create a polar field of tension between Greek and Chinese modes of meaning-making. I think that he arrives at some interesting places by doing so. What I like here is the notion of the expressivity of the world itself bubbling up through consciousness -- perhaps being held inside to stew like Robert Frost's "lump in the throat" -- or perhaps shunting its way through a human being like light rays through a crystal, leaving behind a projection such as an impressionist sketch. The full text of Frost's "lump in the throat" quote is of note here: âA poem begins with a lump in the throat; a homesickness or a love sickness. It is a reaching-out toward expression; an effort to find fulfillment. A complete poem is one where an emotion has found its thought and the thought has found words.â Frost's Desert Places may serve as a concrete example of "the incitatory mode": Snow falling and night falling fast, oh, fast In a field I looked into going past, And the ground almost covered smooth in snow, But a few weeds and stubble showing last. The woods around it have it--it is theirs. All animals are smothered in their lairs. I am too absent-spirited to count; The loneliness includes me unawares. And lonely as it is that loneliness Will be more lonely ere it will be less-- A blanker whiteness of benighted snow With no expression, nothing to express. They cannot scare me with their empty spaces Between stars--on stars where no human race is. I have it in me so much nearer home To scare myself with my own desert places.
Just a toy
Catch the ball with the mouse (hold down button), then fling it (move mouse and release button)!
Please upgrade your browser to something new like Google Chrome.
//Made with ProcessingLyon Tumblrify: //http://p5lyon.tumblr.com/ProcessingJSTumblr //English Version: //http://p5lyon.tumblr.com/ProcessingJSTumblrEn //PVector previousV; //PVector previousA; PVector previousMouse; PVector currentMouse; PVector difference; ball bouncer; void setup(){ size(500,500); frameRate(30); bouncer = new ball(); //PVector previousV = new PVector(0,0); //PVector previousA = new PVector(0,0); difference = new PVector(0,0); //PVector difference = new PVector(0,0); } void draw(){ previousMouse = new PVector(pmouseX, pmouseY); currentMouse = new PVector(mouseX, mouseY); difference = PVector.sub(currentMouse, previousMouse); PVector gravity = new PVector(0,0.1); background(255); /* PVector friction = bouncer.velocity.get(); friction.normalize(); friction.mult(-1); friction.mult(.01); bouncer.applyForce(friction); */ if (mousePressed == true){ if (mouseX > bouncer.position.x - 50 && mouseX < bouncer.position.x + 50){ if (mouseY > bouncer.position.y - 50 && mouseY < bouncer.position.y + 50){ bouncer.position.x = mouseX; bouncer.position.y = mouseY; //previousV = bouncer.velocity.get(); //previousA = bouncer.acceleration.get(); bouncer.velocity.mult(0); bouncer.acceleration.mult(0); } } } bouncer.applyForce(gravity); bouncer.checkEdges(); bouncer.display(); } void mouseReleased(){ print(difference); bouncer.velocity.add(difference); //bouncer.acceleration = previousA.get(); } class ball{ PVector position; PVector velocity; PVector acceleration; int size; float mass; ball(){ position = new PVector(250,250); velocity = new PVector(5,0); acceleration = new PVector(0,0); //gravity = new PVector(0,.1); size = 50; mass = 5; } void applyForce(PVector force){ PVector f = PVector.div(force, mass); acceleration.add(f); } void checkEdges(){ if (position.x > width - size/2){ velocity.x *= -1; position.x = width - size/2; } if (position.x < 0 + size/2){ velocity.x *= -1; position.x = 0 + size/2; } if (position.y > height - size/2){ velocity.y *= -1; position.y = height - size/2; } if (position.y < 0 + size/2){ velocity.y *= -1; position.y = 0 + size/2; } } void display(){ stroke(0); velocity.add(acceleration); position.add(velocity); ellipse(position.x, position.y, size, size); } }
Edit: Apparently this is buggy for a lot of people. Probably stretching the bounds of what processing.js can handle easily. Might have to find an alternative platform for interactive sketches.