A flexible file format for formalizing multi-dimensional paths, strokes, gestures, or function scribbles, also known as "fubbles". Dotfub was conceptualized and created in Chicago at netizen.org's Artware Incubator with Olivia Jack.
A single moment
A continuum of ticks
A collection of fubbles ex: a hand geasture could be made up of finger fubbles). This can be a manifest with metadata (about the relationship between fubbles, including a shared clock) and references/paths to individual dotfub files, or it can be a single file containing all the individual fubble data itself.
a change of the thing (buffer) a mutation or compression of a dotfub file - quantizing
acting upon (how it's being effected) - fubble/mob on fubble/mob
the act of executing, "running", or "rendering" a fubble. "datamiming" this can happen a multitude of ways - linearly - palindrome - random (perlin && otherwise) - interwoven/intertwingled
A compressed archive of fubbles or mobs.
An error that results from mobbing fubbles.
??? mysterious and unpredictable
The ecostystem of fubbles, fubble mobs, agitations
Software that services fubbles, ex. the Fubble Inspector
A subgenera of Internet art informed by and facilitated by fubbles and the dot fub file format!
~~~
version: 1.0.0
date: 2023~12~06~12:00:00
name:
creator:
device:
location:
license: GPLv3
notes:
mood:
~~~
col t x y z
min 0 -1 0 0
max 6 4 10 10
~ 0.122 43 21 190
~ 0.122 43 21 190
~ 0.1435 33 19 190
~ 0.1677 43 21 190
~ 0.1999 33 19 190
-
the file should begin with
~~~
to designate the start of the header, followed by metadata (example: version: 1.0.0) and closed with another~~~
-
the
date
value in the metadata should be relative to the moment the fubble began (not the file's creation time) -
metadata should be followed by a
col
declaration indicating the labels for each column of data which follows -
always begins with col and t
-
column t (generally corresponds to time) is a number that is increasing
-
other columns are customizable and can be specified by fubble generator
-
the
col
delcaration should be followed by amin
andmax
declaration indicating the min/max values of each column -
a blank line in between lines beginning with ~ indicates a pause or break in continuity
--> returns a fubble
- Sends warning if t is not bigger than past t
- warns if not all dimensions (t, x, y, z) are not covered
- t is time relative to start time / instantiation / birth / inception / genesis
- MUST contain property t
- t must start at 0
const _addTick = (s, payload) => {
Object.keys(s.data).forEach(key => {
let newVal = payload[key]
if (!key in payload) {
console.warn(`missing data for ${key}, using last value instead`)
}
s.data[key].push(newVal)
})
return s
}
--> returns a string
--> return a File handle (?) *.fub is added to end of file
--> return a File handle (?)
--> returns a fubble
--> returns a fubble
--> returns an object containing { x, t, y } values ?? say, time is 0 to 50, we pass in 80 --- does it wrap: repeat, hallucinate, mirror, clamp // what does it do beyond time? from: // what does it do between time? nearest, linear, before, after
- Labanotation ~ Rudolf von Laban (1920s)
- yellow tail ~ Golan Levin (1998, rebuilt in Processing in 2007)
- What Shall We Do Next? (Sequence #1) ~ Julien Prévieux (2006-2011)
- tagtool ~ OMAi GmbH (2008)
- MotionBank ~ Motionbank Project (2010–)
- GML - Graffiti Markup Langauge ~ Jamie Wilkinson, Chris Sugrue, Theo Watson, and Evan Roth (2011)
- Multi-Touch Painting series ~ Evan Roth (2012 - 2014)
- InterFacePainter ~ PoxParty (2013)
- Land Lines ~ Zach Lieberman in collaboration with the Data Arts Team at Google (2016)
- Boopy ~ Andrew Benson and Giphy (2016)
- Norman - VR animated/drawing ~ James Paterson (2017)
- Tensor Flow Body Models ~ TensorFlow.js Team at Google (2018–)
- fubbles "function scribbles" ~ Olivia Jack (2020)
header GIF uses Puffin Arcade Liquid by Bold Monday