Skip to content

Instantly share code, notes, and snippets.

@golanlevin
golanlevin / convertZoomCaptionsToWebVTT.pde
Last active May 17, 2021
Utility for converting transcriptions produced by Zoom's speech-to-text, into WebVTT Caption files suitable for Vimeo.
View convertZoomCaptionsToWebVTT.pde
// Utility for converting transcriptions produced by Zoom's speech-to-text,
// into WebVTT Caption files suitable for Vimeo.
/*
Zoom transcription file looks like:
17:32:36 Thanks so much. Hi everybody, let me get my screen share going.
17:32:47 Right.
----------------------
@golanlevin
golanlevin / shaderHelloWorld.frag
Created May 5, 2021
Simple Processing Shader Template
View shaderHelloWorld.frag
#ifdef GL_ES
precision mediump float;
#endif
#define PROCESSING_COLOR_SHADER
uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;
View amiga_kickstart.pde
// Quick-and-dirty Processing v.3.5.4 program to render the Amiga Kickstart vector art, as described here:
// https://retrocomputing.stackexchange.com/questions/13897/why-was-the-kickstart-1-x-insert-floppy-graphic-so-bad
// Note: this program ignores the flood fills and colors.
// Processing program by Golan Levin, 4/1/2021.
// Amiga artwork by Sheryl Knowles.
void setup() {
/*
* Rendering algorithm:
@golanlevin
golanlevin / autocorrelation.pde
Last active Oct 19, 2020
Autocorrelation demo in Processing
View autocorrelation.pde
float mysteryLag;
float signalA[];
float signalB[];
float autoCorr[];
int nData;
void setup() {
size(512, 700);
nData = 512;
@golanlevin
golanlevin / amos_cams_7800.csv
Created Apr 14, 2020
CSV List of 7800+ web cameras rescued from AMOS (Archive of Many Outdoor Scenes)
View amos_cams_7800.csv
We can't make this file beautiful and searchable because it's too large.
cameraid,name,url,latitude,longitude,last_width,last_height,mhash
1,VT,http://www.hazecam.net/images/main/burlington_right.jpg,44.478739,-73.19164,500,250,
2,Anthem school,http://wwc.instacam.com/instacamimg/PHNAS/PHNAS_l.jpg,33.2765,-112.1872,1280,720,
3,Coolidge High School,http://wwc.instacam.com/instacamimg/CLDGE/CLDGE_l.jpg,39.075880734474,-76.868118734,1280,720,
4,College of the Canyons,http://wwc.instacam.com/instacamimg/CLLCN/CLLCN_l.jpg,34.4044820734014,-118.569055939865,1280,1024,
5,Borrego Springs HS,http://wwc.instacam.com/instacamimg/BORYO/BORYO_l.jpg,33.2648176,-116.3834183,1280,720,
6,Potrero Hill,http://wwc.instacam.com/instacamimg/SANFR/SANFR_l.jpg,37.7603145925262,-122.422996428,1280,720,
7,City of Cripple Creek,http://wwc.instacam.com/instacamimg/CRPCK/CRPCK_l.jpg,38.8261,-105.1499,1280,720,
8,KOAA News First Cams,http://wwc.instacam.com/instacamimg/KOAAT/KOAAT_l.jpg,38.2886723,-104.6237902,1280,720,
9,Aspen ES/MS,http://wwc.instacam.com/instacamimg/ASPEN/ASPEN_l.jpg,0,0,640,480,
@golanlevin
golanlevin / sketch.js
Created Sep 30, 2018
PoseNet skeletons with ml5.js & p5.js, using a pre-loaded video
View sketch.js
// Copyright (c) 2018 ml5
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
/* ===
ml5 Example
PoseNet example using p5.js
=== */
View palmsynth.pde
// https://imgur.com/a/ZEE2f
final color wristCol = color(255, 0, 255);
final color palmCol = color(127);
final color thumbCol = color(0, 255, 0);
final color finger1Col = color(255, 0, 0);
final color finger2Col = color(0, 0, 255);
final color finger3Col = color(0, 255, 255);
final color finger4Col = color(255, 255, 0);
color fingerColors[] = {
@golanlevin
golanlevin / noiseloop.pde
Last active Oct 19, 2020
Processing code to demonstrate seamless loop of 1D noise
View noiseloop.pde
// Processing 3.0x code to demonstrate seamless loop of 1D noise
// Inspired by, and created in support of:
// "Drawing from noise, and then making animated loopy GIFs from there" by Etienne Jacob (@n_disorder)
// https://necessarydisorder.wordpress.com/2017/11/15/drawing-from-noise-and-then-making-animated-loopy-gifs-from-there/
// Note: this program has no dependencies, and does not require SimplexNoise.
// Demo GIF: https://media.giphy.com/media/xUOxeU2ELSPeTbevle/giphy.gif or http://gph.is/2Ah5kqG
PGraphics offscreenImg;
float myScale = 0.01;
float radius = 100.0;
@golanlevin
golanlevin / modulo_example.js
Created Oct 24, 2017
Modulo Example from Golan's Coding Train
View modulo_example.js
var nElements = 7;
var myCounter = 0;
var ping = 0;
function setup() {
createCanvas(600, 500);
}
function draw() {
background((255*(1-(ping*=0.95))), 255,255);
@golanlevin
golanlevin / basicspring.pde
Created Oct 19, 2017
A Spring in Processing
View basicspring.pde
// A basic spring in Processing, based on:
// Hooke's law: F = -kx
// Newton's law: F = ma
// For more examples, see this lecture:
// http://cmuems.com/2015c/deliverables/deliverables-10/springs/
float restLength;
float vx;
float px;