├── 247_waves ├── .projectile ├── thumb.jpg └── index.html ├── 248_arcs ├── .projectile ├── thumb.jpg └── index.html ├── 241_noise ├── .tern-port ├── thumb.jpg ├── index.html └── script.js ├── 242_voronoi ├── .tern-port ├── thumb.jpg └── index.html ├── 243_noise ├── .tern-port ├── thumb.jpg ├── index.html └── script.js ├── 208_voronoi ├── .jshintrc ├── thumb.jpg ├── index.html ├── cells.js ├── lightning.js └── main.js ├── 230_crystals ├── .jshintrc ├── thumb.jpg ├── index.html ├── cells.js └── main.js ├── README.md ├── 014_ik1 └── thumb.jpg ├── 015_ik2 └── thumb.jpg ├── 059_ik3 └── thumb.jpg ├── 063_ik4 └── thumb.jpg ├── 211_fbm └── thumb.jpg ├── orbits ├── .DS_Store ├── thumb.jpg ├── ._index.html └── index.html ├── 001_cube1 ├── thumb.jpg └── index.html ├── 002_cube2 ├── thumb.jpg └── index.html ├── 009_dla1 ├── thumb.jpg └── index.html ├── 010_dla2 └── thumb.jpg ├── 011_dla3 ├── thumb.jpg └── index.html ├── 012_draw1 └── thumb.jpg ├── 013_draw2 └── thumb.jpg ├── 016_lines1 ├── thumb.jpg └── index.html ├── 017_lines2 ├── thumb.jpg └── index.html ├── 018_lines3 ├── thumb.jpg └── index.html ├── 019_lines4 ├── thumb.jpg └── index.html ├── 020_sphere └── thumb.jpg ├── 029_rosace ├── thumb.jpg └── index.html ├── 034_dla4 └── thumb.jpg ├── 035_web1 └── thumb.jpg ├── 036_web2 └── thumb.jpg ├── 042_snow1 └── thumb.jpg ├── 056_sapin ├── thumb.jpg └── index.html ├── 057_goto10 ├── thumb.jpg └── index.html ├── 067_mounts ├── thumb.jpg └── index.html ├── 068_clouds └── thumb.jpg ├── 072_rain └── thumb.jpg ├── 073_bird └── thumb.jpg ├── 074_relief └── thumb.jpg ├── 077_bezier └── thumb.jpg ├── 082_draw3 └── thumb.jpg ├── 083_lines5 └── thumb.jpg ├── 084_lines6 └── thumb.jpg ├── 085_waves └── thumb.jpg ├── 086_snake └── thumb.jpg ├── 088_moire ├── thumb.jpg └── index.html ├── 089_moire2 ├── thumb.jpg └── index.html ├── 090_moire3 ├── thumb.jpg └── index.html ├── 109_curves └── thumb.jpg ├── 116_web3 └── thumb.jpg ├── 117_web4 └── thumb.jpg ├── 145_curve └── thumb.jpg ├── 154_water ├── thumb.jpg └── index.html ├── 155_stars ├── thumb.jpg └── index.html ├── 156_stars2 ├── thumb.jpg └── index.html ├── 157_dragon ├── thumb.jpg └── index.html ├── 160_water2 ├── thumb.jpg └── index.html ├── 163_waves2 ├── thumb.jpg └── index.html ├── 166_drop ├── thumb.jpg └── index.html ├── 168_maze └── thumb.jpg ├── 169_maze2 ├── thumb.jpg └── index.html ├── 170_ribbon ├── thumb.jpg └── index.html ├── 177_maze3 └── thumb.jpg ├── 180_lines7 └── thumb.jpg ├── 181_draw4 └── thumb.jpg ├── 182_draw5 └── thumb.jpg ├── 192_dla5 └── thumb.jpg ├── 193_dla6 └── thumb.jpg ├── 194_frost └── thumb.jpg ├── 195_dla7 ├── thumb.jpg └── Vector4.js ├── 201_dla8 └── thumb.jpg ├── 205_maze4 └── thumb.jpg ├── 206_maze5 └── thumb.jpg ├── 207_dla9 └── thumb.jpg ├── 210_city └── thumb.jpg ├── 213_orbit ├── thumb.jpg └── index.html ├── 214_follow └── thumb.jpg ├── 215_verlet └── thumb.jpg ├── 219_growth └── thumb.jpg ├── 221_noise └── thumb.jpg ├── 222_lorenz └── thumb.jpg ├── 231_cocoon ├── thumb.jpg └── index.html ├── 232_polys ├── thumb.jpg └── index.html ├── 233_angles ├── thumb.jpg ├── index.html └── script.js ├── 235_noise ├── thumb.jpg └── index.html ├── 236_noise ├── thumb.jpg └── index.html ├── 237_noise ├── thumb.jpg └── index.html ├── 239_noise ├── thumb.jpg ├── index.html └── script.js ├── 240_noise ├── thumb.jpg ├── index.html └── script.js ├── 244_noise └── thumb.jpg ├── 246_pong ├── thumb.jpg └── index.html ├── 253_flower ├── thumb.jpg └── index.html ├── 256_path ├── thumb.jpg └── index.html ├── 257_paths ├── thumb.jpg └── index.html ├── 258_paths ├── thumb.jpg └── index.html ├── 023_circles1 └── thumb.jpg ├── 024_circles2 └── thumb.jpg ├── 025_circles3 └── thumb.jpg ├── 026_circles4 └── thumb.jpg ├── 027_circles5 └── thumb.jpg ├── 053_circles └── thumb.jpg ├── 075_relief2 └── thumb.jpg ├── 076_relief3 └── thumb.jpg ├── 079_polygons ├── thumb.jpg └── index.html ├── 081_polygon ├── thumb.jpg └── index.html ├── 087_rosace2 ├── thumb.jpg └── index.html ├── 091_beziers ├── thumb.jpg └── index.html ├── 093_rosace3 ├── thumb.jpg └── index.html ├── 095_stripes ├── thumb.jpg └── index.html ├── 096_delaunay └── thumb.jpg ├── 097_voronoi └── thumb.jpg ├── 098_circles7 ├── thumb.jpg └── index.html ├── 099_circles8 ├── thumb.jpg └── index.html ├── 100_circles9 └── thumb.jpg ├── 106_hexagons ├── thumb.jpg ├── DitherPattern.js ├── index.html ├── Hexagon.js └── HexagonMap.js ├── 118_colors1 └── thumb.jpg ├── 119_colors2 └── thumb.jpg ├── 120_colors3 └── thumb.jpg ├── 121_colors4 └── thumb.jpg ├── 122_stripes2 └── thumb.jpg ├── 125_stripes3 └── thumb.jpg ├── 126_stripes4 └── thumb.jpg ├── 127_stripes5 └── thumb.jpg ├── 128_stripes6 └── thumb.jpg ├── 129_stripes7 └── thumb.jpg ├── 138_ribbons └── thumb.jpg ├── 146_2dcurve └── thumb.jpg ├── 152_ribbons2 └── thumb.jpg ├── 153_2dcurve2 └── thumb.jpg ├── 159_dragon_2 └── thumb.jpg ├── 161_squares ├── thumb.jpg └── index.html ├── 162_squares2 ├── thumb.jpg └── index.html ├── 164_sphere2 ├── thumb.jpg └── index.html ├── 165_spheres └── thumb.jpg ├── 171_ribbon2 └── thumb.jpg ├── 172_colors5 └── thumb.jpg ├── 176_mazeFail └── thumb.jpg ├── 179_colors6 └── thumb.jpg ├── 183_stripes9 └── thumb.jpg ├── 185_ribbon3 └── thumb.jpg ├── 186_ribbons4 └── thumb.jpg ├── 187_ribbons5 └── thumb.jpg ├── 188_voronoi2 └── thumb.jpg ├── 189_voronoi └── thumb.jpg ├── 190_voronoi └── thumb.jpg ├── 191_dragon3 └── thumb.jpg ├── 197_painting └── thumb.jpg ├── 198_painting └── thumb.jpg ├── 199_painting └── thumb.jpg ├── 200_tangents └── thumb.jpg ├── 212_gravity └── thumb.jpg ├── 216_verlet2 └── thumb.jpg ├── 217_verlet3 └── thumb.jpg ├── 218_verlet4 ├── thumb.jpg └── index.html ├── 220_isoline ├── thumb.jpg └── index.html ├── 224_growth2 ├── thumb.jpg └── index.html ├── 225_growth3 ├── thumb.jpg └── index.html ├── 226_follow2 ├── thumb.jpg └── index.html ├── 227_spheres ├── thumb.jpg └── index.html ├── 234_bubbles ├── thumb.jpg └── index.html ├── 238_bubbles ├── thumb.jpg ├── index.html └── script.js ├── 245_clusters ├── thumb.jpg └── index.html ├── 249_circles ├── thumb.jpg ├── index.html └── script.js ├── 003_dimensions1 └── thumb.jpg ├── 004_dimensions2 └── thumb.jpg ├── 005_dimensions3 └── thumb.jpg ├── 006_dimensions4 └── thumb.jpg ├── 007_dimensions5 └── thumb.jpg ├── 008_dimensions6 └── thumb.jpg ├── 021_brownian1 ├── thumb.jpg └── index.html ├── 022_brownian2 ├── thumb.jpg └── index.html ├── 028_polygons1 ├── thumb.jpg └── index.html ├── 030_dimensions7 └── thumb.jpg ├── 031_polygons2 └── thumb.jpg ├── 032_polygons3 └── thumb.jpg ├── 037_snowflake1 ├── thumb.jpg └── index.html ├── 038_snowflake2 └── thumb.jpg ├── 039_snowflake3 └── thumb.jpg ├── 041_scribble1 ├── thumb.jpg └── index.html ├── 043_bullshit1 └── thumb.jpg ├── 044_bullshit2 └── thumb.jpg ├── 045_bullshit3 ├── thumb.jpg └── index.html ├── 046_bullshit4 └── thumb.jpg ├── 047_bullshit5 └── thumb.jpg ├── 048_bullshit6 └── thumb.jpg ├── 049_bullshit7 └── thumb.jpg ├── 050_division1 └── thumb.jpg ├── 051_division2 └── thumb.jpg ├── 052_division3 └── thumb.jpg ├── 055_division4 └── thumb.jpg ├── 060_explosions └── thumb.jpg ├── 061_explosions2 └── thumb.jpg ├── 062_explosions3 ├── thumb.jpg ├── audio.js └── SimpleTone.js ├── 064_dispersion ├── thumb.jpg └── index.html ├── 065_dispersion2 └── thumb.jpg ├── 066_dispersion3 └── thumb.jpg ├── 078_dimensions8 └── thumb.jpg ├── 092_dimensions9 └── thumb.jpg ├── 101_circles10 ├── thumb.jpg └── index.html ├── 102_circles11 ├── thumb.jpg └── index.html ├── 103_circles12 ├── thumb.jpg └── index.html ├── 104_circles13 └── thumb.jpg ├── 105_circles14 └── thumb.jpg ├── 107_circles15 └── thumb.jpg ├── 108_circles16 └── thumb.jpg ├── 110_particles └── thumb.jpg ├── 111_particles2 └── thumb.jpg ├── 112_particles3 └── thumb.jpg ├── 113_particles4 └── thumb.jpg ├── 114_particles5 └── thumb.jpg ├── 115_particles6 └── thumb.jpg ├── 123_circles17 ├── thumb.jpg └── index.html ├── 124_circles18 └── thumb.jpg ├── 131_circles19 └── thumb.jpg ├── 132_line_draw └── thumb.jpg ├── 133_rorschach └── thumb.jpg ├── 134_rorschach2 └── thumb.jpg ├── 135_rorschach3 └── thumb.jpg ├── 136_rorschach4 └── thumb.jpg ├── 137_rorschach5 └── thumb.jpg ├── 142_repulsion └── thumb.jpg ├── 143_repulsion2 └── thumb.jpg ├── 144_particles └── thumb.jpg ├── 147_circles20 └── thumb.jpg ├── 148_circles21 └── thumb.jpg ├── 149_triangles1 ├── thumb.jpg └── index.html ├── 150_triangles2 ├── thumb.jpg └── index.html ├── 151_circles_22 └── thumb.jpg ├── 158_stripes_8 ├── thumb.jpg └── index.html ├── 167_explosions └── thumb.jpg ├── 173_randomness ├── thumb.jpg └── index.html ├── 174_repulsion3 └── thumb.jpg ├── 178_mazeLetter └── thumb.jpg ├── 196_particles └── thumb.jpg ├── 202_particles9 └── thumb.jpg ├── 204_curl_noise └── thumb.jpg ├── 209_division5 └── thumb.jpg ├── 228_attraction ├── thumb.jpg └── index.html ├── 229_deviations ├── thumb.jpg ├── index.html └── script.js ├── 033_distribution1 ├── thumb.jpg └── index.html ├── 040_distribution2 ├── thumb.jpg └── index.html ├── 069_radial_waves └── thumb.jpg ├── 080_more_polygons └── thumb.jpg ├── 094_dimensions10 └── thumb.jpg ├── 175_whiteStripes └── thumb.jpg ├── 184_rainbowSponge └── thumb.jpg ├── 203_simplex_noise ├── thumb.jpg └── index.html ├── 250_lines_points ├── thumb.jpg └── index.html ├── 252_voronoi_cubic ├── thumb.jpg └── index.html ├── 054_degenerated_tree └── thumb.jpg ├── 070_recursive_traces ├── thumb.jpg └── index.html ├── 130_reuleauxTriangle └── thumb.jpg ├── 139_resolutionLines1 └── thumb.jpg ├── 140_resolutionLines2 └── thumb.jpg ├── 141_resolutionLines3 └── thumb.jpg ├── 223_circle_distance └── thumb.jpg ├── 251_lines_points_2 ├── thumb.jpg └── index.html ├── 254_destroy_a_square ├── thumb.jpg └── index.html ├── 058_network_evolution └── thumb.jpg ├── 071_recursive_traces2 └── thumb.jpg ├── 255_destroy_a_square_2 ├── thumb.jpg └── index.html ├── css └── styles.css ├── libs ├── geom.js ├── Vector2.js ├── Tween.js ├── env.js └── v3.js ├── styles.css ├── index.php └── reset.css /247_waves/.projectile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /248_arcs/.projectile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /241_noise/.tern-port: -------------------------------------------------------------------------------- 1 | 50149 -------------------------------------------------------------------------------- /242_voronoi/.tern-port: -------------------------------------------------------------------------------- 1 | 50149 -------------------------------------------------------------------------------- /243_noise/.tern-port: -------------------------------------------------------------------------------- 1 | 50149 -------------------------------------------------------------------------------- /208_voronoi/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esnext":true 3 | } 4 | -------------------------------------------------------------------------------- /230_crystals/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esnext":true 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sketches 2 | http://www.grgrdvrt.com/sketches/ 3 | -------------------------------------------------------------------------------- /014_ik1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/014_ik1/thumb.jpg -------------------------------------------------------------------------------- /015_ik2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/015_ik2/thumb.jpg -------------------------------------------------------------------------------- /059_ik3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/059_ik3/thumb.jpg -------------------------------------------------------------------------------- /063_ik4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/063_ik4/thumb.jpg -------------------------------------------------------------------------------- /211_fbm/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/211_fbm/thumb.jpg -------------------------------------------------------------------------------- /orbits/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/orbits/.DS_Store -------------------------------------------------------------------------------- /orbits/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/orbits/thumb.jpg -------------------------------------------------------------------------------- /001_cube1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/001_cube1/thumb.jpg -------------------------------------------------------------------------------- /002_cube2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/002_cube2/thumb.jpg -------------------------------------------------------------------------------- /009_dla1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/009_dla1/thumb.jpg -------------------------------------------------------------------------------- /010_dla2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/010_dla2/thumb.jpg -------------------------------------------------------------------------------- /011_dla3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/011_dla3/thumb.jpg -------------------------------------------------------------------------------- /012_draw1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/012_draw1/thumb.jpg -------------------------------------------------------------------------------- /013_draw2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/013_draw2/thumb.jpg -------------------------------------------------------------------------------- /016_lines1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/016_lines1/thumb.jpg -------------------------------------------------------------------------------- /017_lines2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/017_lines2/thumb.jpg -------------------------------------------------------------------------------- /018_lines3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/018_lines3/thumb.jpg -------------------------------------------------------------------------------- /019_lines4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/019_lines4/thumb.jpg -------------------------------------------------------------------------------- /020_sphere/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/020_sphere/thumb.jpg -------------------------------------------------------------------------------- /029_rosace/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/029_rosace/thumb.jpg -------------------------------------------------------------------------------- /034_dla4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/034_dla4/thumb.jpg -------------------------------------------------------------------------------- /035_web1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/035_web1/thumb.jpg -------------------------------------------------------------------------------- /036_web2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/036_web2/thumb.jpg -------------------------------------------------------------------------------- /042_snow1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/042_snow1/thumb.jpg -------------------------------------------------------------------------------- /056_sapin/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/056_sapin/thumb.jpg -------------------------------------------------------------------------------- /057_goto10/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/057_goto10/thumb.jpg -------------------------------------------------------------------------------- /067_mounts/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/067_mounts/thumb.jpg -------------------------------------------------------------------------------- /068_clouds/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/068_clouds/thumb.jpg -------------------------------------------------------------------------------- /072_rain/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/072_rain/thumb.jpg -------------------------------------------------------------------------------- /073_bird/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/073_bird/thumb.jpg -------------------------------------------------------------------------------- /074_relief/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/074_relief/thumb.jpg -------------------------------------------------------------------------------- /077_bezier/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/077_bezier/thumb.jpg -------------------------------------------------------------------------------- /082_draw3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/082_draw3/thumb.jpg -------------------------------------------------------------------------------- /083_lines5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/083_lines5/thumb.jpg -------------------------------------------------------------------------------- /084_lines6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/084_lines6/thumb.jpg -------------------------------------------------------------------------------- /085_waves/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/085_waves/thumb.jpg -------------------------------------------------------------------------------- /086_snake/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/086_snake/thumb.jpg -------------------------------------------------------------------------------- /088_moire/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/088_moire/thumb.jpg -------------------------------------------------------------------------------- /089_moire2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/089_moire2/thumb.jpg -------------------------------------------------------------------------------- /090_moire3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/090_moire3/thumb.jpg -------------------------------------------------------------------------------- /109_curves/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/109_curves/thumb.jpg -------------------------------------------------------------------------------- /116_web3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/116_web3/thumb.jpg -------------------------------------------------------------------------------- /117_web4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/117_web4/thumb.jpg -------------------------------------------------------------------------------- /145_curve/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/145_curve/thumb.jpg -------------------------------------------------------------------------------- /154_water/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/154_water/thumb.jpg -------------------------------------------------------------------------------- /155_stars/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/155_stars/thumb.jpg -------------------------------------------------------------------------------- /156_stars2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/156_stars2/thumb.jpg -------------------------------------------------------------------------------- /157_dragon/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/157_dragon/thumb.jpg -------------------------------------------------------------------------------- /160_water2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/160_water2/thumb.jpg -------------------------------------------------------------------------------- /163_waves2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/163_waves2/thumb.jpg -------------------------------------------------------------------------------- /166_drop/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/166_drop/thumb.jpg -------------------------------------------------------------------------------- /168_maze/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/168_maze/thumb.jpg -------------------------------------------------------------------------------- /169_maze2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/169_maze2/thumb.jpg -------------------------------------------------------------------------------- /170_ribbon/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/170_ribbon/thumb.jpg -------------------------------------------------------------------------------- /177_maze3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/177_maze3/thumb.jpg -------------------------------------------------------------------------------- /180_lines7/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/180_lines7/thumb.jpg -------------------------------------------------------------------------------- /181_draw4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/181_draw4/thumb.jpg -------------------------------------------------------------------------------- /182_draw5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/182_draw5/thumb.jpg -------------------------------------------------------------------------------- /192_dla5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/192_dla5/thumb.jpg -------------------------------------------------------------------------------- /193_dla6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/193_dla6/thumb.jpg -------------------------------------------------------------------------------- /194_frost/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/194_frost/thumb.jpg -------------------------------------------------------------------------------- /195_dla7/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/195_dla7/thumb.jpg -------------------------------------------------------------------------------- /201_dla8/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/201_dla8/thumb.jpg -------------------------------------------------------------------------------- /205_maze4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/205_maze4/thumb.jpg -------------------------------------------------------------------------------- /206_maze5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/206_maze5/thumb.jpg -------------------------------------------------------------------------------- /207_dla9/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/207_dla9/thumb.jpg -------------------------------------------------------------------------------- /210_city/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/210_city/thumb.jpg -------------------------------------------------------------------------------- /213_orbit/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/213_orbit/thumb.jpg -------------------------------------------------------------------------------- /214_follow/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/214_follow/thumb.jpg -------------------------------------------------------------------------------- /215_verlet/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/215_verlet/thumb.jpg -------------------------------------------------------------------------------- /219_growth/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/219_growth/thumb.jpg -------------------------------------------------------------------------------- /221_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/221_noise/thumb.jpg -------------------------------------------------------------------------------- /222_lorenz/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/222_lorenz/thumb.jpg -------------------------------------------------------------------------------- /231_cocoon/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/231_cocoon/thumb.jpg -------------------------------------------------------------------------------- /232_polys/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/232_polys/thumb.jpg -------------------------------------------------------------------------------- /233_angles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/233_angles/thumb.jpg -------------------------------------------------------------------------------- /235_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/235_noise/thumb.jpg -------------------------------------------------------------------------------- /236_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/236_noise/thumb.jpg -------------------------------------------------------------------------------- /237_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/237_noise/thumb.jpg -------------------------------------------------------------------------------- /239_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/239_noise/thumb.jpg -------------------------------------------------------------------------------- /240_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/240_noise/thumb.jpg -------------------------------------------------------------------------------- /241_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/241_noise/thumb.jpg -------------------------------------------------------------------------------- /243_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/243_noise/thumb.jpg -------------------------------------------------------------------------------- /244_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/244_noise/thumb.jpg -------------------------------------------------------------------------------- /246_pong/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/246_pong/thumb.jpg -------------------------------------------------------------------------------- /247_waves/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/247_waves/thumb.jpg -------------------------------------------------------------------------------- /248_arcs/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/248_arcs/thumb.jpg -------------------------------------------------------------------------------- /253_flower/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/253_flower/thumb.jpg -------------------------------------------------------------------------------- /256_path/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/256_path/thumb.jpg -------------------------------------------------------------------------------- /257_paths/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/257_paths/thumb.jpg -------------------------------------------------------------------------------- /258_paths/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/258_paths/thumb.jpg -------------------------------------------------------------------------------- /orbits/._index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/orbits/._index.html -------------------------------------------------------------------------------- /023_circles1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/023_circles1/thumb.jpg -------------------------------------------------------------------------------- /024_circles2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/024_circles2/thumb.jpg -------------------------------------------------------------------------------- /025_circles3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/025_circles3/thumb.jpg -------------------------------------------------------------------------------- /026_circles4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/026_circles4/thumb.jpg -------------------------------------------------------------------------------- /027_circles5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/027_circles5/thumb.jpg -------------------------------------------------------------------------------- /053_circles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/053_circles/thumb.jpg -------------------------------------------------------------------------------- /075_relief2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/075_relief2/thumb.jpg -------------------------------------------------------------------------------- /076_relief3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/076_relief3/thumb.jpg -------------------------------------------------------------------------------- /079_polygons/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/079_polygons/thumb.jpg -------------------------------------------------------------------------------- /081_polygon/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/081_polygon/thumb.jpg -------------------------------------------------------------------------------- /087_rosace2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/087_rosace2/thumb.jpg -------------------------------------------------------------------------------- /091_beziers/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/091_beziers/thumb.jpg -------------------------------------------------------------------------------- /093_rosace3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/093_rosace3/thumb.jpg -------------------------------------------------------------------------------- /095_stripes/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/095_stripes/thumb.jpg -------------------------------------------------------------------------------- /096_delaunay/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/096_delaunay/thumb.jpg -------------------------------------------------------------------------------- /097_voronoi/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/097_voronoi/thumb.jpg -------------------------------------------------------------------------------- /098_circles7/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/098_circles7/thumb.jpg -------------------------------------------------------------------------------- /099_circles8/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/099_circles8/thumb.jpg -------------------------------------------------------------------------------- /100_circles9/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/100_circles9/thumb.jpg -------------------------------------------------------------------------------- /106_hexagons/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/106_hexagons/thumb.jpg -------------------------------------------------------------------------------- /118_colors1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/118_colors1/thumb.jpg -------------------------------------------------------------------------------- /119_colors2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/119_colors2/thumb.jpg -------------------------------------------------------------------------------- /120_colors3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/120_colors3/thumb.jpg -------------------------------------------------------------------------------- /121_colors4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/121_colors4/thumb.jpg -------------------------------------------------------------------------------- /122_stripes2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/122_stripes2/thumb.jpg -------------------------------------------------------------------------------- /125_stripes3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/125_stripes3/thumb.jpg -------------------------------------------------------------------------------- /126_stripes4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/126_stripes4/thumb.jpg -------------------------------------------------------------------------------- /127_stripes5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/127_stripes5/thumb.jpg -------------------------------------------------------------------------------- /128_stripes6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/128_stripes6/thumb.jpg -------------------------------------------------------------------------------- /129_stripes7/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/129_stripes7/thumb.jpg -------------------------------------------------------------------------------- /138_ribbons/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/138_ribbons/thumb.jpg -------------------------------------------------------------------------------- /146_2dcurve/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/146_2dcurve/thumb.jpg -------------------------------------------------------------------------------- /152_ribbons2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/152_ribbons2/thumb.jpg -------------------------------------------------------------------------------- /153_2dcurve2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/153_2dcurve2/thumb.jpg -------------------------------------------------------------------------------- /159_dragon_2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/159_dragon_2/thumb.jpg -------------------------------------------------------------------------------- /161_squares/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/161_squares/thumb.jpg -------------------------------------------------------------------------------- /162_squares2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/162_squares2/thumb.jpg -------------------------------------------------------------------------------- /164_sphere2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/164_sphere2/thumb.jpg -------------------------------------------------------------------------------- /165_spheres/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/165_spheres/thumb.jpg -------------------------------------------------------------------------------- /171_ribbon2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/171_ribbon2/thumb.jpg -------------------------------------------------------------------------------- /172_colors5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/172_colors5/thumb.jpg -------------------------------------------------------------------------------- /176_mazeFail/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/176_mazeFail/thumb.jpg -------------------------------------------------------------------------------- /179_colors6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/179_colors6/thumb.jpg -------------------------------------------------------------------------------- /183_stripes9/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/183_stripes9/thumb.jpg -------------------------------------------------------------------------------- /185_ribbon3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/185_ribbon3/thumb.jpg -------------------------------------------------------------------------------- /186_ribbons4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/186_ribbons4/thumb.jpg -------------------------------------------------------------------------------- /187_ribbons5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/187_ribbons5/thumb.jpg -------------------------------------------------------------------------------- /188_voronoi2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/188_voronoi2/thumb.jpg -------------------------------------------------------------------------------- /189_voronoi/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/189_voronoi/thumb.jpg -------------------------------------------------------------------------------- /190_voronoi/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/190_voronoi/thumb.jpg -------------------------------------------------------------------------------- /191_dragon3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/191_dragon3/thumb.jpg -------------------------------------------------------------------------------- /197_painting/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/197_painting/thumb.jpg -------------------------------------------------------------------------------- /198_painting/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/198_painting/thumb.jpg -------------------------------------------------------------------------------- /199_painting/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/199_painting/thumb.jpg -------------------------------------------------------------------------------- /200_tangents/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/200_tangents/thumb.jpg -------------------------------------------------------------------------------- /208_voronoi/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/208_voronoi/thumb.jpg -------------------------------------------------------------------------------- /212_gravity/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/212_gravity/thumb.jpg -------------------------------------------------------------------------------- /216_verlet2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/216_verlet2/thumb.jpg -------------------------------------------------------------------------------- /217_verlet3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/217_verlet3/thumb.jpg -------------------------------------------------------------------------------- /218_verlet4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/218_verlet4/thumb.jpg -------------------------------------------------------------------------------- /220_isoline/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/220_isoline/thumb.jpg -------------------------------------------------------------------------------- /224_growth2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/224_growth2/thumb.jpg -------------------------------------------------------------------------------- /225_growth3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/225_growth3/thumb.jpg -------------------------------------------------------------------------------- /226_follow2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/226_follow2/thumb.jpg -------------------------------------------------------------------------------- /227_spheres/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/227_spheres/thumb.jpg -------------------------------------------------------------------------------- /230_crystals/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/230_crystals/thumb.jpg -------------------------------------------------------------------------------- /234_bubbles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/234_bubbles/thumb.jpg -------------------------------------------------------------------------------- /238_bubbles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/238_bubbles/thumb.jpg -------------------------------------------------------------------------------- /242_voronoi/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/242_voronoi/thumb.jpg -------------------------------------------------------------------------------- /245_clusters/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/245_clusters/thumb.jpg -------------------------------------------------------------------------------- /249_circles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/249_circles/thumb.jpg -------------------------------------------------------------------------------- /003_dimensions1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/003_dimensions1/thumb.jpg -------------------------------------------------------------------------------- /004_dimensions2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/004_dimensions2/thumb.jpg -------------------------------------------------------------------------------- /005_dimensions3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/005_dimensions3/thumb.jpg -------------------------------------------------------------------------------- /006_dimensions4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/006_dimensions4/thumb.jpg -------------------------------------------------------------------------------- /007_dimensions5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/007_dimensions5/thumb.jpg -------------------------------------------------------------------------------- /008_dimensions6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/008_dimensions6/thumb.jpg -------------------------------------------------------------------------------- /021_brownian1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/021_brownian1/thumb.jpg -------------------------------------------------------------------------------- /022_brownian2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/022_brownian2/thumb.jpg -------------------------------------------------------------------------------- /028_polygons1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/028_polygons1/thumb.jpg -------------------------------------------------------------------------------- /030_dimensions7/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/030_dimensions7/thumb.jpg -------------------------------------------------------------------------------- /031_polygons2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/031_polygons2/thumb.jpg -------------------------------------------------------------------------------- /032_polygons3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/032_polygons3/thumb.jpg -------------------------------------------------------------------------------- /037_snowflake1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/037_snowflake1/thumb.jpg -------------------------------------------------------------------------------- /038_snowflake2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/038_snowflake2/thumb.jpg -------------------------------------------------------------------------------- /039_snowflake3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/039_snowflake3/thumb.jpg -------------------------------------------------------------------------------- /041_scribble1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/041_scribble1/thumb.jpg -------------------------------------------------------------------------------- /043_bullshit1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/043_bullshit1/thumb.jpg -------------------------------------------------------------------------------- /044_bullshit2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/044_bullshit2/thumb.jpg -------------------------------------------------------------------------------- /045_bullshit3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/045_bullshit3/thumb.jpg -------------------------------------------------------------------------------- /046_bullshit4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/046_bullshit4/thumb.jpg -------------------------------------------------------------------------------- /047_bullshit5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/047_bullshit5/thumb.jpg -------------------------------------------------------------------------------- /048_bullshit6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/048_bullshit6/thumb.jpg -------------------------------------------------------------------------------- /049_bullshit7/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/049_bullshit7/thumb.jpg -------------------------------------------------------------------------------- /050_division1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/050_division1/thumb.jpg -------------------------------------------------------------------------------- /051_division2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/051_division2/thumb.jpg -------------------------------------------------------------------------------- /052_division3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/052_division3/thumb.jpg -------------------------------------------------------------------------------- /055_division4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/055_division4/thumb.jpg -------------------------------------------------------------------------------- /060_explosions/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/060_explosions/thumb.jpg -------------------------------------------------------------------------------- /061_explosions2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/061_explosions2/thumb.jpg -------------------------------------------------------------------------------- /062_explosions3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/062_explosions3/thumb.jpg -------------------------------------------------------------------------------- /064_dispersion/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/064_dispersion/thumb.jpg -------------------------------------------------------------------------------- /065_dispersion2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/065_dispersion2/thumb.jpg -------------------------------------------------------------------------------- /066_dispersion3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/066_dispersion3/thumb.jpg -------------------------------------------------------------------------------- /078_dimensions8/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/078_dimensions8/thumb.jpg -------------------------------------------------------------------------------- /092_dimensions9/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/092_dimensions9/thumb.jpg -------------------------------------------------------------------------------- /101_circles10/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/101_circles10/thumb.jpg -------------------------------------------------------------------------------- /102_circles11/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/102_circles11/thumb.jpg -------------------------------------------------------------------------------- /103_circles12/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/103_circles12/thumb.jpg -------------------------------------------------------------------------------- /104_circles13/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/104_circles13/thumb.jpg -------------------------------------------------------------------------------- /105_circles14/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/105_circles14/thumb.jpg -------------------------------------------------------------------------------- /107_circles15/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/107_circles15/thumb.jpg -------------------------------------------------------------------------------- /108_circles16/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/108_circles16/thumb.jpg -------------------------------------------------------------------------------- /110_particles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/110_particles/thumb.jpg -------------------------------------------------------------------------------- /111_particles2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/111_particles2/thumb.jpg -------------------------------------------------------------------------------- /112_particles3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/112_particles3/thumb.jpg -------------------------------------------------------------------------------- /113_particles4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/113_particles4/thumb.jpg -------------------------------------------------------------------------------- /114_particles5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/114_particles5/thumb.jpg -------------------------------------------------------------------------------- /115_particles6/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/115_particles6/thumb.jpg -------------------------------------------------------------------------------- /123_circles17/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/123_circles17/thumb.jpg -------------------------------------------------------------------------------- /124_circles18/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/124_circles18/thumb.jpg -------------------------------------------------------------------------------- /131_circles19/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/131_circles19/thumb.jpg -------------------------------------------------------------------------------- /132_line_draw/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/132_line_draw/thumb.jpg -------------------------------------------------------------------------------- /133_rorschach/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/133_rorschach/thumb.jpg -------------------------------------------------------------------------------- /134_rorschach2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/134_rorschach2/thumb.jpg -------------------------------------------------------------------------------- /135_rorschach3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/135_rorschach3/thumb.jpg -------------------------------------------------------------------------------- /136_rorschach4/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/136_rorschach4/thumb.jpg -------------------------------------------------------------------------------- /137_rorschach5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/137_rorschach5/thumb.jpg -------------------------------------------------------------------------------- /142_repulsion/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/142_repulsion/thumb.jpg -------------------------------------------------------------------------------- /143_repulsion2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/143_repulsion2/thumb.jpg -------------------------------------------------------------------------------- /144_particles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/144_particles/thumb.jpg -------------------------------------------------------------------------------- /147_circles20/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/147_circles20/thumb.jpg -------------------------------------------------------------------------------- /148_circles21/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/148_circles21/thumb.jpg -------------------------------------------------------------------------------- /149_triangles1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/149_triangles1/thumb.jpg -------------------------------------------------------------------------------- /150_triangles2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/150_triangles2/thumb.jpg -------------------------------------------------------------------------------- /151_circles_22/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/151_circles_22/thumb.jpg -------------------------------------------------------------------------------- /158_stripes_8/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/158_stripes_8/thumb.jpg -------------------------------------------------------------------------------- /167_explosions/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/167_explosions/thumb.jpg -------------------------------------------------------------------------------- /173_randomness/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/173_randomness/thumb.jpg -------------------------------------------------------------------------------- /174_repulsion3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/174_repulsion3/thumb.jpg -------------------------------------------------------------------------------- /178_mazeLetter/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/178_mazeLetter/thumb.jpg -------------------------------------------------------------------------------- /196_particles/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/196_particles/thumb.jpg -------------------------------------------------------------------------------- /202_particles9/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/202_particles9/thumb.jpg -------------------------------------------------------------------------------- /204_curl_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/204_curl_noise/thumb.jpg -------------------------------------------------------------------------------- /209_division5/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/209_division5/thumb.jpg -------------------------------------------------------------------------------- /228_attraction/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/228_attraction/thumb.jpg -------------------------------------------------------------------------------- /229_deviations/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/229_deviations/thumb.jpg -------------------------------------------------------------------------------- /033_distribution1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/033_distribution1/thumb.jpg -------------------------------------------------------------------------------- /040_distribution2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/040_distribution2/thumb.jpg -------------------------------------------------------------------------------- /069_radial_waves/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/069_radial_waves/thumb.jpg -------------------------------------------------------------------------------- /080_more_polygons/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/080_more_polygons/thumb.jpg -------------------------------------------------------------------------------- /094_dimensions10/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/094_dimensions10/thumb.jpg -------------------------------------------------------------------------------- /175_whiteStripes/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/175_whiteStripes/thumb.jpg -------------------------------------------------------------------------------- /184_rainbowSponge/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/184_rainbowSponge/thumb.jpg -------------------------------------------------------------------------------- /203_simplex_noise/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/203_simplex_noise/thumb.jpg -------------------------------------------------------------------------------- /250_lines_points/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/250_lines_points/thumb.jpg -------------------------------------------------------------------------------- /252_voronoi_cubic/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/252_voronoi_cubic/thumb.jpg -------------------------------------------------------------------------------- /054_degenerated_tree/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/054_degenerated_tree/thumb.jpg -------------------------------------------------------------------------------- /070_recursive_traces/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/070_recursive_traces/thumb.jpg -------------------------------------------------------------------------------- /130_reuleauxTriangle/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/130_reuleauxTriangle/thumb.jpg -------------------------------------------------------------------------------- /139_resolutionLines1/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/139_resolutionLines1/thumb.jpg -------------------------------------------------------------------------------- /140_resolutionLines2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/140_resolutionLines2/thumb.jpg -------------------------------------------------------------------------------- /141_resolutionLines3/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/141_resolutionLines3/thumb.jpg -------------------------------------------------------------------------------- /223_circle_distance/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/223_circle_distance/thumb.jpg -------------------------------------------------------------------------------- /251_lines_points_2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/251_lines_points_2/thumb.jpg -------------------------------------------------------------------------------- /254_destroy_a_square/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/254_destroy_a_square/thumb.jpg -------------------------------------------------------------------------------- /058_network_evolution/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/058_network_evolution/thumb.jpg -------------------------------------------------------------------------------- /071_recursive_traces2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/071_recursive_traces2/thumb.jpg -------------------------------------------------------------------------------- /255_destroy_a_square_2/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grgrdvrt/sketches/HEAD/255_destroy_a_square_2/thumb.jpg -------------------------------------------------------------------------------- /css/styles.css: -------------------------------------------------------------------------------- 1 | canvas 2 | { 3 | margin:0 auto 0 auto; 4 | display:block; 5 | width:700px; 6 | border:1px solid #eee; 7 | } 8 | -------------------------------------------------------------------------------- /062_explosions3/audio.js: -------------------------------------------------------------------------------- 1 | var AudioContext = webkitAudioContext; 2 | 3 | 4 | 5 | window.addEventListener("blur", function(){ctx.destination.disconnect;}); -------------------------------------------------------------------------------- /libs/geom.js: -------------------------------------------------------------------------------- 1 | geom = function() 2 | { 3 | function Vertex(x, y) 4 | { 5 | this.x = x || 0; 6 | this.y = y || 0; 7 | } 8 | return {Vertex:Vertex}; 9 | }(); -------------------------------------------------------------------------------- /249_circles/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Clusters 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /245_clusters/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Clusters 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /256_path/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Path 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /255_destroy_a_square_2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Destroy A Square 2 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /257_paths/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Paths 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /258_paths/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Paths 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /254_destroy_a_square/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Destroy A Square 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /247_waves/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Waves 4 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /232_polys/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | distance 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /233_angles/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Angles 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /234_bubbles/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Bubbles 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /248_arcs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Arcs 4 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /253_flower/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Flower 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /229_deviations/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | deviations 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /242_voronoi/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Voronoi 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /235_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /236_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /237_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /239_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /240_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /241_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /243_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noise 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /226_follow2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | follow 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /227_spheres/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | spheres 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /231_cocoon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | cocoon 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /238_bubbles/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Bubbles 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /228_attraction/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Attraction 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /252_voronoi_cubic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Voronoï 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /224_growth2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | growth 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /225_growth3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | growth 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /218_verlet4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /208_voronoi/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Voronoï 4 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /230_crystals/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | crystals 4 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /106_hexagons/DitherPattern.js: -------------------------------------------------------------------------------- 1 | function DitherPattern(step){ 2 | this.step = step; 3 | 4 | this.stage = new tools.Stage(this.step, this.step, false); 5 | this.canvas = this.stage.canvas; 6 | 7 | this.draw(); 8 | } 9 | 10 | DitherPattern.prototype = { 11 | draw : function(){ 12 | var out = this.stage.out; 13 | 14 | out.fillStyle = "white"; 15 | out.fillRect(0, 0, this.step, this.step); 16 | out.strokeStyle = "black"; 17 | out.beginPath(); 18 | for(var i = 0; i < 2 * this.step; i += this.step){ 19 | out.moveTo(0, i); 20 | out.lineTo(this.step, i - this.step); 21 | } 22 | out.stroke(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /251_lines_points_2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Lines Points 5 | 6 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /orbits/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | distance 4 | 5 | 6 | 7 | 8 | 9 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /250_lines_points/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Lines Points 4 | 5 | 17 | 18 | 19 | 20 | 21 | 22 |

Made for @terc0_

23 | 24 | 25 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | .header { 2 | display:flex; 3 | align-items:center; 4 | justify-content:space-between; 5 | width:992px; 6 | margin:0 auto; 7 | } 8 | 9 | .header-home 10 | { 11 | font-size:2.5em; 12 | display:inline; 13 | } 14 | 15 | 16 | .header-home a { text-decoration:none; } 17 | .header-home a:hover { text-decoration:underline; } 18 | 19 | 20 | .header-menu-item 21 | { 22 | list-style-type:none; 23 | display:inline; 24 | font-size:1.5em; 25 | margin-right:30px; 26 | } 27 | 28 | 29 | .header-menu-item a { text-decoration:none; } 30 | .header-menu-item a:hover 31 | { 32 | color:black; 33 | background-color:white; 34 | text-decoration:underline; 35 | } 36 | 37 | 38 | 39 | .sketches-title 40 | { 41 | font-size:3em; 42 | text-align:center; 43 | margin:200px 0 100px 0; 44 | } 45 | 46 | 47 | .sketches-sketches-list 48 | { 49 | text-align:center; 50 | } 51 | 52 | 53 | -------------------------------------------------------------------------------- /230_crystals/cells.js: -------------------------------------------------------------------------------- 1 | export default function create(nSites, w, h) 2 | { 3 | let w2 = 0.5 * w; 4 | let h2 = 0.5 * h; 5 | let bbox = {xl:-w2, xr:w2, yt:-h2, yb:h2}; 6 | 7 | 8 | console.time("sites"); 9 | let sites = []; 10 | for(let i = 0; i < nSites; i++) { 11 | let ang = Math.random() * 2 * Math.PI; 12 | let ran = Math.random(); 13 | let r = Math.sqrt(Math.sqrt(ran)) * w2; 14 | sites[i] = { 15 | x : r * Math.cos(ang), 16 | y : r * Math.sin(ang) 17 | }; 18 | } 19 | console.timeEnd("sites"); 20 | 21 | 22 | let voronoi = new Voronoi(); 23 | console.time("cells"); 24 | let diagram = voronoi.compute(sites, bbox); 25 | console.timeEnd("cells"); 26 | 27 | let cells = diagram.cells.filter(cell => { 28 | return !cell.halfedges.reduce((onEdge, he) => { 29 | let pt = he.getEndpoint(); 30 | return onEdge || pt.x <= -0.9 * w2 || pt.x >= 0.9 * w2 || pt.y <= -0.9 * h2 || pt.y >= 0.9 * h2; 31 | }, false); 32 | }); 33 | 34 | return cells; 35 | } 36 | -------------------------------------------------------------------------------- /028_polygons1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | polygons 1 4 | 5 | 6 | 7 | 8 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /249_circles/script.js: -------------------------------------------------------------------------------- 1 | const w = 1000; 2 | const h = 1000; 3 | const canvas = document.createElement("canvas"); 4 | canvas.width = w; 5 | canvas.height = h; 6 | document.body.appendChild(canvas); 7 | const ctx = canvas.getContext("2d"); 8 | 9 | const cellSize = 5; 10 | let time = 0; 11 | 12 | ctx.fillStyle = "black"; 13 | ctx.strokeStyle = "white"; 14 | function update(){ 15 | time++; 16 | for(let i = 0; i < (1 - (0.01 * time) % 1) * 100; i++){ 17 | const scale = 2**(Math.floor((0.01 * time % 1)**6 * 6)); 18 | const radius = scale * cellSize / 2; 19 | const x = Math.floor(Math.random() * w / (scale * cellSize)) * (scale * cellSize) + radius; 20 | const y = Math.floor(Math.random() * h / (scale * cellSize)) * (scale * cellSize) + radius; 21 | ctx.beginPath(); 22 | ctx.moveTo(x + radius, y); 23 | ctx.arc(x, y, radius, 0, 2 * Math.PI); 24 | ctx.fill(); 25 | ctx.stroke(); 26 | } 27 | requestAnimationFrame(update); 28 | } 29 | 30 | update(); 31 | -------------------------------------------------------------------------------- /029_rosace/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | rosace 4 | 5 | 6 | 7 | 8 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /208_voronoi/cells.js: -------------------------------------------------------------------------------- 1 | export default function create(nSites, w, h) 2 | { 3 | var w2 = 0.5 * w; 4 | var h2 = 0.5 * h; 5 | var bbox = {xl:-w2, xr:w2, yt:-h2, yb:h2}; 6 | 7 | 8 | console.time("sites"); 9 | var sites = []; 10 | for(var i = 0; i < nSites; i++) { 11 | var ang = Math.random() * 2 * Math.PI; 12 | var ran = Math.random(); 13 | var r = Math.sqrt(Math.sqrt(ran)) * w2; 14 | sites[i] = { 15 | x : r * Math.cos(ang), 16 | y : r * Math.sin(ang) 17 | }; 18 | } 19 | console.timeEnd("sites"); 20 | 21 | 22 | var voronoi = new Voronoi(); 23 | console.time("cells"); 24 | var diagram = voronoi.compute(sites, bbox); 25 | console.timeEnd("cells"); 26 | 27 | var cells = diagram.cells.filter(function(cell){ 28 | return true; 29 | return !cell.halfedges.reduce(function(onEdge, he){ 30 | var pt = he.getEndpoint(); 31 | return onEdge || pt.x <= -0.9 * w2 || pt.x >= 0.9 * w2 || pt.y <= -0.9 * h2 || pt.y >= 0.9 * h2; 32 | }, false); 33 | }); 34 | 35 | return cells; 36 | } 37 | -------------------------------------------------------------------------------- /033_distribution1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | distribution 1 4 | 5 | 6 | 7 | 8 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /088_moire/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Moire 4 | 5 | 6 | 7 | 8 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /154_water/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Water 4 | 5 | 6 | 7 | 8 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /106_hexagons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hexagons 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /208_voronoi/lightning.js: -------------------------------------------------------------------------------- 1 | export default function create(nLights, w, h) 2 | { 3 | var pointLights = []; 4 | 5 | var globalHue = Math.random() * 360; 6 | var sat = Math.round(Math.random() * 50) + 50; 7 | var lig = 60; 8 | 9 | for(var i = 0; i < nLights; i++){ 10 | 11 | var hue = Math.round(globalHue + Math.random() * 120); 12 | var color = "hsl(" + hue + ", " + sat + "%, " + lig + "%)"; 13 | 14 | var light = new THREE.PointLight(color, 1, 0.3 * w, 1); 15 | light.position.set( 16 | (Math.random() - 0.5) * w, 17 | Math.random() * 3 + 1, 18 | (Math.random() - 0.5) * h 19 | ); 20 | pointLights[i] = light; 21 | } 22 | 23 | var globalColor = new THREE.Color(); 24 | globalColor.setHSL(globalHue / 360, sat / 100, lig / 100); 25 | globalColor.multiplyScalar(0.3); 26 | 27 | var ambientLight = new THREE.AmbientLight(globalColor); 28 | 29 | /*var directional = new THREE.DirectionalLight(0xffffff); 30 | directional.position.set(1, 1, 1); 31 | directional.lookAt(0, 0, 0); 32 | scene.add(directional);*/ 33 | 34 | return { 35 | pointLights:pointLights, 36 | ambientLight:ambientLight, 37 | globalColor:globalColor 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /002_cube2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | cube 2 4 | 5 | 6 | 7 | 8 | 9 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /195_dla7/Vector4.js: -------------------------------------------------------------------------------- 1 | function Vector4(x, y, z, w) 2 | { 3 | this.x = x || 0; 4 | this.y = y || 0; 5 | this.z = z || 0; 6 | this.w = w || 1; 7 | } 8 | 9 | Vector4.prototype = { 10 | normalize : function() 11 | { 12 | var ratio = 1 / Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); 13 | this.x *= ratio; 14 | this.y *= ratio; 15 | this.z *= ratio; 16 | }, 17 | 18 | 19 | cloneTo : function(target) 20 | { 21 | if(target === undefined) { 22 | target = new Vector4(); 23 | } 24 | target.x = this.x; 25 | target.y = this.y; 26 | target.z = this.z; 27 | target.w = this.w; 28 | return target; 29 | }, 30 | 31 | 32 | reciprocalDivide : function() 33 | { 34 | var ratio = 1 / this.w; 35 | this.x = this.x *= ratio; 36 | this.y = this.y *= ratio; 37 | this.z = this.z *= ratio; 38 | this.w = 1; 39 | }, 40 | 41 | 42 | scale : function(scale) 43 | { 44 | this.x *= scale; 45 | this.y *= scale; 46 | this.z *= scale; 47 | this.w *= scale; 48 | }, 49 | 50 | 51 | toString : function() 52 | { 53 | return "[Vector4 x:" + this.x + " y:" + this.y +" z:" + this.z + " w:" + this.w + "]"; 54 | } 55 | }; 56 | 57 | -------------------------------------------------------------------------------- /057_goto10/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | goto10 4 | 5 | 6 | 7 | 8 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /libs/Vector2.js: -------------------------------------------------------------------------------- 1 | class Vector2{ 2 | constructor(x = 0, y = 0){ 3 | this.set(x, y); 4 | } 5 | 6 | set(x = 0, y = 0){ 7 | this.x = x; 8 | this.y = y; 9 | return this; 10 | } 11 | 12 | add(v){ 13 | this.x += v.x; 14 | this.y += v.y; 15 | return this; 16 | } 17 | 18 | sub(v){ 19 | this.x -= v.x; 20 | this.y -= v.y; 21 | return this; 22 | } 23 | 24 | multiplyScalar(s){ 25 | this.x *= s; 26 | this.y *= s; 27 | return this; 28 | } 29 | 30 | scale(v){ 31 | this.x *= v.x; 32 | this.y *= v.y; 33 | return this; 34 | } 35 | 36 | copy(v){ 37 | return this.set(v.x, v.y); 38 | } 39 | 40 | clone(){ 41 | return new Vector2(this.x, this.y); 42 | } 43 | 44 | normalize(){ 45 | return this.multiplyScalar(1 / this.getLength()); 46 | } 47 | 48 | getLength(){ 49 | // return Math.hypot(this.x, this.y); 50 | return Math.sqrt(this.x**2 + this.y**2); 51 | } 52 | 53 | setLength(len){ 54 | return this.normalize().multiplyScalar(len); 55 | } 56 | 57 | cross(v){ 58 | return this.x * v.y - this.y * v.x; 59 | } 60 | 61 | dot(v){ 62 | return this.x * v.x + this.y * v.y; 63 | // return this.x * v.x + this.y * v.y + this.z * v.z;//3d 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /149_triangles1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Triangles 4 | 5 | 6 | 7 | 8 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /150_triangles2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Triangles 4 | 5 | 6 | 7 | 8 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | sketches 4 | 5 | 6 | 7 | 8 |
9 |

GrgrDvrt

15 |
16 | 17 |

Sketches

18 |
19 | '; 37 | } 38 | ?> 39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /089_moire2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Moire 4 | 5 | 6 | 7 | 8 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /070_recursive_traces/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | recursive traces 4 | 5 | 6 | 7 | 8 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /169_maze2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Maze 4 | 5 | 6 | 7 | 8 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /170_ribbon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | ribbon 4 | 5 | 6 | 7 | 8 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /libs/Tween.js: -------------------------------------------------------------------------------- 1 | function Tween(obj) 2 | { 3 | this.target = obj; 4 | this.isStarted = false; 5 | } 6 | 7 | Tween.prototype = { 8 | to : function(duration, props, onComplete, delay) 9 | { 10 | this.cancel(); 11 | this.duration = 1000 * duration; 12 | this.endProps = props; 13 | this.onComplete = onComplete; 14 | if(!delay) delay = 0; 15 | 16 | this.beginProps = {}; 17 | for(var prop in this.endProps) 18 | this.beginProps[prop] = this.target[prop]; 19 | 20 | setTimeout(tools.delegate(this.start, this), delay * 1000); 21 | }, 22 | 23 | start : function() 24 | { 25 | this.isStarted = true; 26 | this.beginTime = Date.now(); 27 | this._tick(); 28 | }, 29 | 30 | _tick : function() 31 | { 32 | this._onUpdate(); 33 | if(this.isStarted) 34 | tools.requestAnimationFrame.call(window, tools.delegate(this._tick, this)); 35 | }, 36 | 37 | _onUpdate : function() 38 | { 39 | var timeDiff = Date.now() - this.beginTime; 40 | var ratio = timeDiff / this.duration; 41 | var isFinished = ratio > 1; 42 | if(isFinished)ratio = 1; 43 | this.setRatio(ratio); 44 | }, 45 | 46 | setRatio : function(ratio) 47 | { 48 | for(var prop in this.endProps) 49 | { 50 | this.target[prop] = this.beginProps[prop] + ratio * (this.endProps[prop] - this.beginProps[prop]); 51 | } 52 | }, 53 | 54 | cancel : function() 55 | { 56 | this.isStarted = false; 57 | if(this.timer) tools.cancelAnimationFrame(this.timer); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /079_polygons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | polygon 4 | 5 | 6 | 7 | 8 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /243_noise/script.js: -------------------------------------------------------------------------------- 1 | const w = 700; 2 | const h = 700; 3 | 4 | const canvas = document.createElement("canvas"); 5 | canvas.width = w; 6 | canvas.height = h; 7 | document.body.appendChild(canvas); 8 | 9 | const ctx = canvas.getContext("2d"); 10 | 11 | const noise = new SimplexNoise(); 12 | 13 | const scale = Math.random() * 0.002 + 0.004; 14 | 15 | const bubbles = []; 16 | for(let i = 0; i < 3000; i++){ 17 | const b = { 18 | pos:new Vector2( 19 | Math.random() * w, 20 | Math.random() * h, 21 | ), 22 | radius:20 23 | }; 24 | bubbles[i] = b; 25 | } 26 | 27 | 28 | let time = 0; 29 | function update(){ 30 | time += 0.08; 31 | ctx.clearRect(0, 0, w, h); 32 | ctx.fillStyle = "black"; 33 | ctx.strokeStyle = "white"; 34 | bubbles.forEach(b => b.depth = noise.noise3d(scale * b.pos.x - 0.3 * time, scale * b.pos.y, time)); 35 | bubbles.sort((a, b) => a.depth - b.depth); 36 | bubbles.forEach(b => { 37 | 38 | ctx.lineCap = ctx.lineJoin = "round"; 39 | ctx.beginPath(); 40 | ctx.lineWidth = 2 * b.radius + 0.5; 41 | ctx.moveTo(b.pos.x - 1, b.pos.y + 1); 42 | ctx.lineTo(b.pos.x, b.pos.y); 43 | ctx.strokeStyle = "white"; 44 | ctx.stroke(); 45 | 46 | ctx.beginPath(); 47 | ctx.lineWidth = 2 * b.radius; 48 | ctx.moveTo(b.pos.x, b.pos.y); 49 | ctx.lineTo(b.pos.x + 0.5, b.pos.y + 0.5); 50 | ctx.strokeStyle = "black"; 51 | ctx.stroke(); 52 | }); 53 | requestAnimationFrame(update); 54 | } 55 | 56 | update(); 57 | -------------------------------------------------------------------------------- /161_squares/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Squares 4 | 5 | 6 | 7 | 8 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /158_stripes_8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Stripes 4 | 5 | 6 | 7 | 8 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /239_noise/script.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const w = 700; 4 | const h = 700; 5 | 6 | const canvas = document.createElement("canvas"); 7 | canvas.width = w; 8 | canvas.height = h; 9 | document.body.appendChild(canvas); 10 | 11 | const ctx = canvas.getContext("2d"); 12 | 13 | const noise = new SimplexNoise(); 14 | 15 | const scale = Math.random() * 0.003 + 0.005; 16 | const o1 = 0; 17 | const o2 = 1000; 18 | 19 | let time = 0; 20 | 21 | const bubbles = []; 22 | for(let i = 0; i < 1000; i++){ 23 | bubbles[i] = { 24 | pos:new Vector2( 25 | Math.random() * w, 26 | Math.random() * h, 27 | ), 28 | vel:new Vector2() 29 | }; 30 | } 31 | 32 | 33 | 34 | 35 | const fr = 0.98; 36 | const center = new Vector2(0.5 * w, 0.5 * h); 37 | ctx.lineCap = ctx.lineJoin = "round"; 38 | ctx.lineWidth = 2; 39 | 40 | function update(){ 41 | let acc = new Vector2(); 42 | time += 0.0075; 43 | ctx.fillStyle = "rgba(255, 255, 255, 0.05)"; 44 | ctx.fillRect(0, 0, w, h); 45 | 46 | ctx.beginPath(); 47 | bubbles.forEach(b => { 48 | ctx.moveTo(b.pos.x, b.pos.y); 49 | acc.set( 50 | noise.noise3d(b.pos.x * scale + o1, b.pos.y * scale + o1, time), 51 | noise.noise3d(b.pos.x * scale + o1, b.pos.y * scale + o2, time) 52 | ).multiplyScalar(0.35); 53 | b.vel.multiplyScalar(fr).add(acc); 54 | b.pos.add(b.vel); 55 | b.pos.add(center.clone().sub(b.pos).multiplyScalar(0.02)); 56 | ctx.lineTo(b.pos.x, b.pos.y); 57 | }); 58 | ctx.stroke(); 59 | requestAnimationFrame(update); 60 | } 61 | 62 | update(); 63 | 64 | -------------------------------------------------------------------------------- /067_mounts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | mounts 4 | 5 | 6 | 7 | 8 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /095_stripes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Stripes 4 | 5 | 6 | 7 | 8 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | -webkit-font-smoothing:antialiased; 26 | -moz-osx-font-smoothing:grayscale; 27 | } 28 | /* HTML5 display-role reset for older browsers */ 29 | article, aside, details, figcaption, figure, 30 | footer, header, hgroup, menu, nav, section { 31 | display: block; 32 | } 33 | body { 34 | line-height: 1; 35 | } 36 | ol, ul { 37 | list-style: none; 38 | } 39 | blockquote, q { 40 | quotes: none; 41 | } 42 | blockquote:before, blockquote:after, 43 | q:before, q:after { 44 | content: ''; 45 | content: none; 46 | } 47 | table { 48 | border-collapse: collapse; 49 | border-spacing: 0; 50 | } 51 | 52 | input:focus, 53 | select:focus, 54 | textarea:focus, 55 | a:focus, 56 | button:focus { 57 | outline: none; 58 | } 59 | 60 | a, a:visited 61 | { 62 | color:inherit; 63 | } 64 | 65 | -------------------------------------------------------------------------------- /001_cube1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | cube 1 4 | 5 | 6 | 7 | 8 | 9 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /155_stars/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Stars 4 | 5 | 6 | 7 | 8 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /017_lines2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lines 2 4 | 5 | 6 | 7 | 8 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /091_beziers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Beziers 4 | 5 | 6 | 7 | 8 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /libs/env.js: -------------------------------------------------------------------------------- 1 | function Env() 2 | { 3 | this.scene = new THREE.Scene(); 4 | this.camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); 5 | 6 | this.renderer = new THREE.WebGLRenderer({antialias:true}); 7 | this.renderer.setSize( window.innerWidth, window.innerHeight ); 8 | document.body.appendChild( this.renderer.domElement ); 9 | 10 | 11 | this.ambientLight = new THREE.AmbientLight(0x808080); 12 | this.scene.add(this.ambientLight); 13 | 14 | this.directionalLight = new THREE.DirectionalLight(0x808080); 15 | this.directionalLight.position.set(1, 1, 1); 16 | this.directionalLight.lookAt(0, 0, 0); 17 | this.scene.add(this.directionalLight); 18 | 19 | this.camera.position.z = 5; 20 | 21 | this.controls = new THREE.OrbitControls(this.camera, this.renderer.domElement); 22 | 23 | 24 | window.addEventListener("resize", this.onResize.bind(this)); 25 | } 26 | 27 | 28 | Env.prototype = { 29 | 30 | start : function(updateCallback) 31 | { 32 | this.updateCallback = updateCallback; 33 | this.update(); 34 | }, 35 | 36 | 37 | update : function() 38 | { 39 | this.updateCallback(); 40 | 41 | this.controls.update(); 42 | 43 | this.renderer.render(this.scene, this.camera); 44 | 45 | requestAnimationFrame(this.update.bind(this)); 46 | }, 47 | 48 | 49 | onResize : function() 50 | { 51 | var w = window.innerWidth; 52 | var h = window.innerHeight; 53 | 54 | this.renderer.setSize(w, h); 55 | 56 | this.camera.aspect = w / h; 57 | this.camera.updateProjectionMatrix(); 58 | } 59 | }; 60 | -------------------------------------------------------------------------------- /009_dla1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | dla 1 4 | 5 | 6 | 7 | 8 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /018_lines3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lines 3 4 | 5 | 6 | 7 | 8 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /156_stars2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Stars 4 | 5 | 6 | 7 | 8 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /164_sphere2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Sphere 4 | 5 | 6 | 7 | 8 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /203_simplex_noise/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Simplex Noise 4 | 5 | 6 | 7 | 8 | 9 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /087_rosace2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Rosace 4 | 5 | 6 | 7 | 8 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /240_noise/script.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const w = 700; 4 | const h = 700; 5 | 6 | const canvas = document.createElement("canvas"); 7 | canvas.width = w; 8 | canvas.height = h; 9 | document.body.appendChild(canvas); 10 | 11 | const ctx = canvas.getContext("2d"); 12 | 13 | const noise = new SimplexNoise(); 14 | 15 | const scale = Math.random() * 0.003 + 0.005; 16 | const o1 = 0; 17 | const o2 = 1000; 18 | 19 | let time = 0; 20 | 21 | const bubbles = []; 22 | for(let i = 0; i < 3000; i++){ 23 | bubbles[i] = { 24 | pos:new Vector2( 25 | Math.random() * w, 26 | Math.random() * h, 27 | ), 28 | vel:new Vector2() 29 | }; 30 | } 31 | 32 | 33 | 34 | 35 | const fr = 0.98; 36 | const center = new Vector2(0.5 * w, 0.5 * h); 37 | ctx.lineCap = ctx.lineJoin = "round"; 38 | ctx.lineWidth = 2; 39 | 40 | function update(){ 41 | let acc = new Vector2(); 42 | time += 0.0075; 43 | // ctx.fillStyle = "rgba(255, 255, 255, 0.05)"; 44 | // ctx.fillRect(0, 0, w, h); 45 | 46 | let gs = Math.round(255 * (0.5 + 0.5 * Math.cos(time))); 47 | ctx.strokeStyle = `rgb(${gs}, ${gs}, ${gs})`; 48 | 49 | ctx.beginPath(); 50 | bubbles.forEach(b => { 51 | ctx.moveTo(b.pos.x, b.pos.y); 52 | acc.set( 53 | noise.noise3d(b.pos.x * scale + o1, b.pos.y * scale + o1, time), 54 | noise.noise3d(b.pos.x * scale + o1, b.pos.y * scale + o2, time) 55 | ).multiplyScalar(0.35); 56 | b.vel.multiplyScalar(fr).add(acc); 57 | b.pos.add(b.vel); 58 | b.pos.add(center.clone().sub(b.pos).multiplyScalar(0.02)); 59 | ctx.lineTo(b.pos.x, b.pos.y); 60 | }); 61 | ctx.stroke(); 62 | requestAnimationFrame(update); 63 | } 64 | 65 | update(); 66 | 67 | -------------------------------------------------------------------------------- /229_deviations/script.js: -------------------------------------------------------------------------------- 1 | tools.mixin(tools, this); 2 | var w = 700; 3 | var h = 700; 4 | var stage = new Stage(w, h); 5 | 6 | var ctx = stage.out; 7 | 8 | 9 | function lerp(a, b, t){ 10 | return (1 - t) * a + t * b; 11 | } 12 | 13 | function makeParticle(x, y, ox, oy, deviation){ 14 | // return {x, y, ox, oy, deviation, time:Math.random() * 200 + 100}; 15 | return {x, y, ox, oy, deviation, time:200}; 16 | } 17 | 18 | function copyParticle(p) { 19 | return makeParticle(p.x, p.y, p.ox, p.oy, -p.deviation); 20 | } 21 | 22 | 23 | let particles = [ 24 | makeParticle( 25 | 0.5 * w, 26 | 0.5 * h, 27 | 0.5 * w + Math.random() * 2 - 1, 28 | 0.5 * h + Math.random() * 2 - 1, 29 | 0.01) 30 | ]; 31 | 32 | 33 | let l = 0; 34 | new Loop(() => { 35 | ctx.beginPath(); 36 | 37 | let n = particles.length; 38 | for(let i = 0; i < n; i++){ 39 | let p = particles[i]; 40 | 41 | ctx.moveTo(p.x, p.y); 42 | let dx = p.x - p.ox; 43 | let dy = p.y - p.oy; 44 | p.ox = p.x; 45 | p.oy = p.y; 46 | let vx = dx + p.deviation * dy; 47 | let vy = dy - p.deviation * dx; 48 | p.deviation += (Math.random() * 2 - 1) * 0.001; 49 | p.x = p.ox + vx; 50 | p.y = p.oy + vy; 51 | ctx.lineTo(p.x, p.y); 52 | if(Math.random() < 0.02 && particles.length < 1000){ 53 | particles.push(copyParticle(p)); 54 | } 55 | 56 | if(p.time-- < 0 || p.x < 0 || p.y < 0 || p.x > w || p.y > h){ 57 | particles[i] = particles[n - 1]; 58 | n = particles.length = n - 1; 59 | }; 60 | } 61 | l = (l + 0.1) % 100; 62 | ctx.strokeStyle = `hsla(${Math.round(360 * l / 100)}, 100%, 50%, 0.5)`; 63 | ctx.stroke(); 64 | }); 65 | -------------------------------------------------------------------------------- /056_sapin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | sapin 4 | 5 | 6 | 7 | 8 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /162_squares2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Squares 4 | 5 | 6 | 7 | 8 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /037_snowflake1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Snowflake 1 4 | 5 | 6 | 7 | 8 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /019_lines4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lines 4 4 | 5 | 6 | 7 | 8 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /163_waves2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Wave 4 | 5 | 6 | 7 | 8 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /157_dragon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dragon 4 | 5 | 6 | 7 | 8 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /160_water2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Water 4 | 5 | 6 | 7 | 8 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /246_pong/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pong 4 | 5 | 47 | 48 | 49 | 50 | 51 |
52 |

Controls: Up/Down

53 |

Score:

54 |

Last Score:

55 |

High Scores:

56 |

RankDateScore

57 |
    58 |
    59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /081_polygon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Polygon 4 | 5 | 6 | 7 | 8 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /220_isoline/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Simplex Noise 4 | 5 | 6 | 7 | 8 | 9 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /230_crystals/main.js: -------------------------------------------------------------------------------- 1 | import createCells from "./cells"; 2 | import createGeometry from "./geometry"; 3 | 4 | let w = 100; 5 | let h = 100; 6 | 7 | let scene = new THREE.Scene(); 8 | 9 | let renderer = new THREE.WebGLRenderer({antialias:true}); 10 | renderer.setSize( window.innerWidth, window.innerHeight ); 11 | document.body.appendChild( renderer.domElement ); 12 | 13 | let camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 ); 14 | camera.position.set(1, 1, 1).multiplyScalar(100); 15 | camera.lookAt(new THREE.Vector3()); 16 | 17 | 18 | let group = new THREE.Group(); 19 | group.position.y = -50; 20 | scene.add(group); 21 | 22 | 23 | let controls = new THREE.OrbitControls(camera, renderer.element); 24 | 25 | scene.add(new THREE.AmbientLight(0xffffff)); 26 | 27 | let directional = new THREE.DirectionalLight(0xffffff); 28 | directional.position.set(1, 1, 1); 29 | directional.lookAt(0, 0, 0); 30 | scene.add(directional); 31 | 32 | renderer.setClearColor(0xffffff); 33 | scene.fog = new THREE.FogExp2(0xffffff, 0.002); 34 | 35 | 36 | function createMesh(geometry) 37 | { 38 | let material = new THREE.MeshStandardMaterial({ 39 | color:0xaaaaaa, 40 | roughness:0.4, 41 | metalness:1, 42 | shading:THREE.FlatShading 43 | }); 44 | let mesh = new THREE.Mesh(geometry, material); 45 | group.add(mesh); 46 | return mesh; 47 | } 48 | 49 | let mesh = createMesh(createGeometry(createCells(50, w, h))); 50 | 51 | 52 | 53 | let time = 0; 54 | let oldTime = Date.now(); 55 | function update() 56 | { 57 | let now = Date.now(); 58 | let dt = now - oldTime; 59 | oldTime = now; 60 | time += dt; 61 | 62 | controls.update(dt); 63 | renderer.render(scene, camera); 64 | group.rotation.y += 0.01; 65 | 66 | requestAnimationFrame( update ); 67 | } 68 | 69 | update(); 70 | -------------------------------------------------------------------------------- /016_lines1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lines 1 4 | 5 | 6 | 7 | 8 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /166_drop/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Drop 4 | 5 | 6 | 7 | 8 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /062_explosions3/SimpleTone.js: -------------------------------------------------------------------------------- 1 | function ADSRGenerator(ctx, attack, decay, sustain, release, sustainValue) 2 | { 3 | this.ctx = ctx; 4 | 5 | this.input = this.output = this.gain; 6 | 7 | this.attack = attack || 0; 8 | this.decay = decay || 0; 9 | this.sustain = sustain || 1; 10 | this.release = release || 0; 11 | this.sustainValue = sustainValue || 0.9; 12 | } 13 | 14 | ADSRGenerator.prototype = { 15 | 16 | apply :function (param) 17 | { 18 | var time = this.ctx.currentTime; 19 | 20 | param.cancelScheduledValues(time); 21 | 22 | param.setValueAtTime(param.value, time); 23 | 24 | time += this.attack; 25 | param.linearRampToValueAtTime(1.0, time); 26 | 27 | time += this.decay; 28 | param.linearRampToValueAtTime(this.sustainValue, time); 29 | 30 | time += this.sustain; 31 | param.linearRampToValueAtTime(this.sustainValue, time); 32 | 33 | time += this.release; 34 | param.linearRampToValueAtTime(0, time); 35 | } 36 | }; 37 | 38 | 39 | function SimpleTone(ctx) 40 | { 41 | this.ctx = ctx; 42 | 43 | console.log(this.ctx); 44 | this.oscillator = this.ctx.createOscillator(); 45 | this.gainNode = this.ctx.createGain(); 46 | this.gainNode.gain.setValueAtTime(0, this.ctx.currentTime); 47 | 48 | //this.ADSRGenerator = new ADSRGenerator(this.ctx, 0.0001, 0.0001, 0.1, 0.7, 0.9); 49 | this.ADSRGenerator = new ADSRGenerator(this.ctx, 0.1, 0.1, 0.1, 1.9, 0.5); 50 | this.oscillator.connect(this.gainNode); 51 | this.gainNode.connect(this.ctx.destination); 52 | 53 | this.tone = 0; 54 | this.oscillator.start(0); 55 | } 56 | 57 | 58 | SimpleTone.prototype = { 59 | play : function(tone) 60 | { 61 | if(tone || tone === 0) this.tone = tone; 62 | this.oscillator.frequency.setValueAtTime(440 * Math.pow(2, this.tone / 12), this.ctx.currentTime); 63 | this.ADSRGenerator.apply(this.gainNode.gain); 64 | } 65 | }; 66 | -------------------------------------------------------------------------------- /208_voronoi/main.js: -------------------------------------------------------------------------------- 1 | import createCells from "./cells"; 2 | import createGeometry from "./geometry"; 3 | import createLightning from "./lightning"; 4 | import createMaterial from "./material"; 5 | 6 | 7 | var w = 100; 8 | var h = 100; 9 | 10 | var scene = new THREE.Scene(); 11 | 12 | var renderer = new THREE.WebGLRenderer({antialias:true}); 13 | renderer.setSize( window.innerWidth, window.innerHeight ); 14 | document.body.appendChild( renderer.domElement ); 15 | 16 | var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 ); 17 | camera.position.set(10, 10, 10); 18 | camera.lookAt(new THREE.Vector3()); 19 | 20 | 21 | var group = new THREE.Group(); 22 | scene.add(group); 23 | 24 | 25 | var controls = new THREE.OrbitControls(camera, renderer.element); 26 | 27 | var lights = createLightning(10, w, h); 28 | var pointLights = lights.pointLights; 29 | pointLights.forEach(function(light){ 30 | group.add(light); 31 | }); 32 | 33 | scene.add(lights.ambientLight); 34 | 35 | var globalColor = lights.globalColor; 36 | globalColor.multiplyScalar(0.3); 37 | renderer.setClearColor(globalColor); 38 | scene.fog = new THREE.FogExp2(globalColor, 0.04); 39 | 40 | 41 | function createMesh(geometry) 42 | { 43 | var material = createMaterial(); 44 | var mesh = new THREE.Mesh(geometry, material); 45 | group.add(mesh); 46 | return mesh; 47 | } 48 | 49 | var mesh = createMesh( 50 | createGeometry( 51 | createCells(10000, w, h))); 52 | 53 | 54 | 55 | var time = 0; 56 | var oldTime = Date.now(); 57 | function update() 58 | { 59 | var now = Date.now(); 60 | var dt = now - oldTime; 61 | oldTime = now; 62 | time += dt; 63 | mesh.material.uniforms.time.value = time; 64 | 65 | controls.update(dt); 66 | renderer.render(scene, camera); 67 | 68 | requestAnimationFrame( update ); 69 | } 70 | 71 | update(); 72 | -------------------------------------------------------------------------------- /173_randomness/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Randomness 4 | 5 | 6 | 7 | 8 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /045_bullshit3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | bullshit 2 4 | 5 | 6 | 7 | 8 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /011_dla3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | dla 3 4 | 5 | 6 | 7 | 8 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /106_hexagons/Hexagon.js: -------------------------------------------------------------------------------- 1 | function Hexagon(x, y) 2 | { 3 | this.x = x; 4 | this.y = y; 5 | 6 | this.height; 7 | this.radius; 8 | 9 | this.scale; 10 | 11 | this.display = true; 12 | } 13 | 14 | Hexagon.RATIO = Math.sqrt(0.75); 15 | Hexagon.PATTERN = new DitherPattern(3); 16 | 17 | Hexagon.prototype = { 18 | setRadius : function(radius) 19 | { 20 | this.radius = radius; 21 | }, 22 | 23 | setScale : function(scale) 24 | { 25 | this.scale = scale; 26 | }, 27 | 28 | 29 | setHeight : function(height) 30 | { 31 | this.height = height; 32 | }, 33 | 34 | 35 | draw : function(out, pattern) 36 | { 37 | if(!this.display) return; 38 | var r = this.radius; 39 | var h = this.scale * r * Hexagon.RATIO; 40 | var r2 = 0.5 * this.radius; 41 | var y = -this.height; 42 | 43 | out.save(); 44 | out.translate(this.x, this.y); 45 | 46 | out.strokeStyle = "black"; 47 | 48 | out.beginPath() 49 | out.moveTo(r, y); 50 | out.lineTo(r, 0); 51 | out.lineTo(r2, h); 52 | out.lineTo(r2, y + h); 53 | out.closePath(); 54 | out.fillStyle = "black"; 55 | out.fill(); 56 | 57 | out.fillStyle = pattern; 58 | out.fillRect(-r2, y + h, r, this.height); 59 | 60 | out.beginPath(); 61 | out.moveTo(-r2, y + h); 62 | out.lineTo(-r2, h); 63 | out.lineTo(-r, h); 64 | out.lineTo(-r, y); 65 | out.closePath(); 66 | out.fillStyle = "white"; 67 | out.fill(); 68 | 69 | out.beginPath(); 70 | out.moveTo(r, y); 71 | out.lineTo(r2, y + h); 72 | out.lineTo(-r2, y + h); 73 | out.lineTo(-r, y); 74 | out.lineTo(-r2, y - h); 75 | out.lineTo(r2, y - h); 76 | out.lineTo(r, y); 77 | out.fillStyle = "white"; 78 | out.fill(); 79 | 80 | 81 | out.lineTo(r, 0); 82 | out.lineTo(r2, h); 83 | out.lineTo(-r2, h); 84 | out.lineTo(-r, 0); 85 | out.lineTo(-r, y); 86 | 87 | out.moveTo(r2, y + h); 88 | out.lineTo(r2, h); 89 | out.moveTo(-r2, y + h); 90 | out.lineTo(-r2, h); 91 | 92 | out.stroke(); 93 | 94 | out.restore(); 95 | } 96 | } -------------------------------------------------------------------------------- /106_hexagons/HexagonMap.js: -------------------------------------------------------------------------------- 1 | function HexagonMap(w, h){ 2 | this.width = w; 3 | this.height = h; 4 | 5 | 6 | this.hexagons = []; 7 | 8 | var n = 200; 9 | var nx = Math.floor(0.5 * Math.sqrt(n)); 10 | this.maxRadius = 40; 11 | this.maxHeight = 50; 12 | this.hexScale = 0.5 * Math.sqrt(2); 13 | for(var i = 0; i < n; i++){ 14 | 15 | var posX = i % nx; 16 | var posY = Math.floor(i / nx); 17 | 18 | var offset = posY % 2 ? 1.5 * this.maxRadius: 0; 19 | 20 | var hex = new Hexagon(posX * 3 * this.maxRadius + offset, 21 | posY * this.maxRadius * Hexagon.RATIO * this.hexScale); 22 | hex.setRadius(this.maxRadius); 23 | hex.setHeight(this.maxHeight); 24 | hex.setScale(this.hexScale); 25 | this.hexagons[i] = hex; 26 | } 27 | 28 | this.ditherPattern = undefined; 29 | this.time = 0; 30 | 31 | 32 | } 33 | 34 | HexagonMap.prototype = { 35 | 36 | update : function(){ 37 | var n = this.hexagons.length; 38 | for(var i = 0; i < n; i++){ 39 | var hex = this.hexagons[i]; 40 | //hex.setHeight(this.maxHeight * 0.5 * (Math.cos(0.05 * this.time + 0.5 * i) + 1)); 41 | hex.setHeight(this.maxHeight * 0.5 * (Math.cos(0.05 * this.time + 0.5 * (hex.x + hex.y)) + 1)); 42 | hex.setRadius(this.maxRadius * (0.25 * Math.sin(0.05 * this.time + 0.5 * (hex.x + hex.y)) + 0.75)); 43 | //hex.setHeight(this.maxHeight * Math.random()); 44 | } 45 | }, 46 | 47 | 48 | draw : function(out){ 49 | if(!this.ditherPattern) 50 | this.ditherPattern = out.createPattern(Hexagon.PATTERN.canvas, "repeat");; 51 | 52 | var n = this.hexagons.length; 53 | for(var i = 0; i < n; i++) 54 | { 55 | var hex = this.hexagons[i]; 56 | if(hex.display) 57 | hex.draw(out, this.ditherPattern); 58 | } 59 | 60 | this.time++; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /libs/v3.js: -------------------------------------------------------------------------------- 1 | function lerp(a, b, t){ 2 | return a + t * (b - a); 3 | } 4 | 5 | class V3{ 6 | static dist(a, b){ 7 | return Math.hypot( 8 | a.x - b.x, 9 | a.y - b.y, 10 | a.z - b.z, 11 | ); 12 | } 13 | constructor(x, y, z){ 14 | this.set(x, y, z); 15 | } 16 | 17 | set(x = 0, y = 0, z = 0){ 18 | this.x = x; 19 | this.y = y; 20 | this.z = z; 21 | return this; 22 | } 23 | 24 | add(v){ 25 | this.x += v.x; 26 | this.y += v.y; 27 | this.z += v.z; 28 | return this; 29 | } 30 | 31 | sub(v){ 32 | this.x -= v.x; 33 | this.y -= v.y; 34 | this.z -= v.z; 35 | return this; 36 | } 37 | 38 | multiplyScalar(s){ 39 | this.x *= s; 40 | this.y *= s; 41 | this.z *= s; 42 | return this; 43 | } 44 | 45 | cross(v){ 46 | return this.set( 47 | this.y * v.z - this.z * v.y, 48 | this.z * v.x - this.x * v.z, 49 | this.x * v.y - this.y * v.x 50 | ); 51 | } 52 | 53 | lerp(v, t){ 54 | return this.set( 55 | this.x = lerp(this.x, v.x, t), 56 | this.y = lerp(this.y, v.y, t), 57 | this.z = lerp(this.z, v.z, t), 58 | ); 59 | } 60 | 61 | dot(v){ 62 | return this.x * v.x + this.y * v.y + this.z * v.z; 63 | } 64 | 65 | getLength(){ 66 | return Math.hypot(this.x, this.y, this.z); 67 | } 68 | 69 | setLength(length){ 70 | const s = length / Math.hypot(this.x, this.y, this.z); 71 | this.x *= s; 72 | this.y *= s; 73 | this.z *= s; 74 | return this; 75 | } 76 | 77 | normalize(){ 78 | return this.setLength(1); 79 | } 80 | 81 | negate(){ 82 | return this.multiplyScalar(-1); 83 | } 84 | 85 | clone(){ 86 | return new V3(this.x, this.y, this.z); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /241_noise/script.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const w = 700; 4 | const h = 700; 5 | 6 | const canvas = document.createElement("canvas"); 7 | canvas.width = w; 8 | canvas.height = h; 9 | document.body.appendChild(canvas); 10 | 11 | const ctx = canvas.getContext("2d"); 12 | 13 | const noise = new SimplexNoise(); 14 | 15 | const scale = Math.random() * 0.003 + 0.005; 16 | const o1 = 0; 17 | const o2 = 1000; 18 | 19 | let time = 0; 20 | 21 | const bubbles = []; 22 | for(let i = 0; i < 3000; i++){ 23 | bubbles[i] = { 24 | pos:new Vector2( 25 | 0.5 * w + 0.1 * Math.random() * w, 26 | 0.5 * h + 0.1 * Math.random() * h, 27 | ), 28 | vel:new Vector2() 29 | }; 30 | } 31 | 32 | function channel(){ 33 | let a = Math.random(); 34 | let b = Math.random(); 35 | let c = Math.random(); 36 | let d = Math.random(); 37 | return function(t){ 38 | return Math.floor(255 * (a + b * (0.5 + 0.5 * Math.cos(2 * Math.PI * (c * t + d))))); 39 | }; 40 | } 41 | 42 | let r = channel(); 43 | let g = channel(); 44 | let b = channel(); 45 | 46 | 47 | const fr = 0.98; 48 | const center = new Vector2(0.5 * w, 0.5 * h); 49 | ctx.lineCap = ctx.lineJoin = "round"; 50 | ctx.lineWidth = 2; 51 | 52 | function update(){ 53 | let acc = new Vector2(); 54 | time += 0.0075; 55 | // ctx.fillStyle = "rgba(255, 255, 255, 0.05)"; 56 | // ctx.fillRect(0, 0, w, h); 57 | 58 | ctx.strokeStyle = `rgb(${r(time)}, ${g(time)}, ${b(time)})`; 59 | 60 | ctx.beginPath(); 61 | bubbles.forEach(b => { 62 | ctx.moveTo(b.pos.x, b.pos.y); 63 | acc.set( 64 | noise.noise3d(b.pos.x * scale + o1, b.pos.y * scale + o1, time), 65 | noise.noise3d(b.pos.x * scale + o1, b.pos.y * scale + o2, time) 66 | ).multiplyScalar(0.35); 67 | b.vel.multiplyScalar(fr).add(acc); 68 | b.pos.add(b.vel); 69 | b.pos.add(center.clone().sub(b.pos).multiplyScalar(0.02)); 70 | ctx.lineTo(b.pos.x, b.pos.y); 71 | }); 72 | ctx.stroke(); 73 | requestAnimationFrame(update); 74 | } 75 | 76 | update(); 77 | 78 | -------------------------------------------------------------------------------- /103_circles12/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Circles 4 | 5 | 6 | 7 | 8 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /022_brownian2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | brownian 2 4 | 5 | 6 | 7 | 8 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /238_bubbles/script.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const w = 700; 4 | const h = 700; 5 | 6 | const canvas = document.createElement("canvas"); 7 | canvas.width = w; 8 | canvas.height = h; 9 | document.body.appendChild(canvas); 10 | 11 | const ctx = canvas.getContext("2d"); 12 | 13 | const noise = new SimplexNoise(); 14 | 15 | const scale = Math.random() * 0.005 + 0.005; 16 | 17 | let time = 0; 18 | 19 | const bubbles = []; 20 | for(let i = 0; i < 500; i++){ 21 | bubbles[i] = { 22 | radius:1, 23 | pos:new Vector2( 24 | Math.random() * w, 25 | Math.random() * h, 26 | ) 27 | }; 28 | } 29 | 30 | 31 | 32 | function applyConstraints(paddingRatio){ 33 | const n = bubbles.length; 34 | for(let i = 0; i < n; i++){ 35 | const b1 = bubbles[i]; 36 | const paddingRatio2 = 1 + 0.3 * (1 - i / (n - 1))**2; 37 | const r1 = b1.radius * paddingRatio2; 38 | for(let j = 0; j < i; j++){ 39 | const b2 = bubbles[j]; 40 | const d = b1.pos.clone().sub(b2.pos); 41 | if(d.getLength() < r1 + b2.radius){ 42 | d.setLength((r1 + b2.radius) - (d.getLength())).multiplyScalar(0.5 * paddingRatio); 43 | b1.pos.add(d); 44 | b2.pos.sub(d); 45 | } 46 | } 47 | } 48 | } 49 | 50 | 51 | const center = new Vector2(0.5 * w, 0.5 * h); 52 | 53 | function update(){ 54 | time += 0.002; 55 | ctx.clearRect(0, 0, w, h); 56 | bubbles.forEach(b => { 57 | b.pos.add(center.clone().sub(b.pos).multiplyScalar(0.003)); 58 | const target = 1 + 70 * (0.5 + 0.5 * noise.noise3d(b.pos.x * scale, b.pos.y * scale, time))**2.5; 59 | b.radius += 0.05 * (target - b.radius); 60 | }); 61 | const n = 5; 62 | for(let i = 0; i < n; i++){ 63 | // applyConstraints(1.1 + 0.5 * (1 - i / (n - 1))); 64 | applyConstraints(1); 65 | } 66 | ctx.beginPath(); 67 | bubbles.forEach(b => { 68 | ctx.moveTo(b.pos.x + b.radius, b.pos.y); 69 | ctx.arc(b.pos.x, b.pos.y, b.radius, 0, 2 * Math.PI); 70 | }); 71 | ctx.stroke(); 72 | requestAnimationFrame(update); 73 | } 74 | 75 | update(); 76 | 77 | -------------------------------------------------------------------------------- /233_angles/script.js: -------------------------------------------------------------------------------- 1 | let w = 700; 2 | let h = 700; 3 | let canvas = document.createElement("canvas"); 4 | canvas.width = w; 5 | canvas.height = h; 6 | document.body.appendChild(canvas); 7 | 8 | let ctx = canvas.getContext("2d"); 9 | 10 | let nPts = 100; 11 | let pts = []; 12 | let overFlow = 0.25; 13 | for(let i = 0; i < nPts; i++){ 14 | pts[i] = { 15 | x:Math.random() * (1 + overFlow) * w - (0.5 * overFlow) * w, 16 | y:Math.random() * (1 + overFlow) * h - (0.5 * overFlow) * h 17 | }; 18 | } 19 | 20 | 21 | 22 | pts.sort((a, b) => a.y - b.y); 23 | 24 | function angle(p1, p2){ 25 | return Math.atan2( 26 | p2.y - p1.y, 27 | p2.x - p1.x, 28 | ); 29 | } 30 | 31 | function lerp(a, b, t){ 32 | return a + t * (b - a); 33 | } 34 | 35 | let size = 3; 36 | pts.forEach((p1, i) => { 37 | let angleLim = Math.PI / 10 + Math.random() * Math.PI / 5; 38 | let leftPt, rightPt; 39 | let min = Number.POSITIVE_INFINITY; 40 | let max = Number.NEGATIVE_INFINITY; 41 | for(let j = i + 1; j < nPts; j++){ 42 | let p2 = pts[j]; 43 | if(p2.x < min && angle(p1, p2) < Math.PI / 2 + angleLim && (!leftPt || angle(p1, p2) > angle(p1, leftPt))){ 44 | min = p2.x; 45 | leftPt = p2; 46 | } 47 | if(p2.x > max && angle(p1, p2) > Math.PI / 2 - angleLim && (!rightPt || angle(p1, p2) < angle(p1, rightPt))){ 48 | max = p2.x; 49 | rightPt = p2; 50 | } 51 | } 52 | if(leftPt && rightPt){ 53 | ctx.beginPath(); 54 | ctx.moveTo(p1.x, p1.y); 55 | ctx.lineTo(lerp(p1.x, leftPt.x, 5), lerp(p1.y, leftPt.y, 5)); 56 | ctx.lineTo(lerp(p1.x, rightPt.x, 5), lerp(p1.y, rightPt.y, 5)); 57 | ctx.lineTo(p1.x, p1.y); 58 | ctx.fillStyle = "white"; 59 | ctx.fill(); 60 | } 61 | 62 | ctx.beginPath(); 63 | for(let j = i + 1; j < nPts; j++){ 64 | let p2 = pts[j]; 65 | let a = angle(p1, p2); 66 | 67 | if(a < Math.PI / 2 + angleLim && a > Math.PI / 2 - angleLim){ 68 | ctx.moveTo(p1.x, p1.y); 69 | ctx.lineTo(p2.x, p2.y); 70 | } 71 | } 72 | ctx.stroke(); 73 | }); 74 | -------------------------------------------------------------------------------- /098_circles7/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Circles 4 | 5 | 6 | 7 | 8 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /021_brownian1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | brownian 1 4 | 5 | 6 | 7 | 8 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /040_distribution2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | distribution 2 4 | 5 | 6 | 7 | 8 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /101_circles10/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Circles 4 | 5 | 6 | 7 | 8 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /093_rosace3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Rosace 4 | 5 | 6 | 7 | 8 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /213_orbit/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /090_moire3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Moire 4 | 5 | 6 | 7 | 8 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /064_dispersion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | dispersion 4 | 5 | 6 | 7 | 8 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /102_circles11/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Circles 4 | 5 | 6 | 7 | 8 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /099_circles8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Circles 4 | 5 | 6 | 7 | 8 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /123_circles17/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | RGB 4 | 5 | 6 | 7 | 8 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /041_scribble1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | scribble 1 4 | 5 | 6 | 7 | 8 | 60 | 61 | 62 | --------------------------------------------------------------------------------