Art Connecting Dots


Project Code

This code is written and rendered using Processing (v3), a quick and easy graphical sketchbook engine written in Java
class Blip {
	PVector location;
	PVector velocity;
	PVector acceleration;
	String uniq_id;
	float maxDist = 36.0;
	boolean invisible = false;
	
	int num_neighbors;
	ArrayList neighbors;
	
	Blip() {
		location = new PVector(random(0, width), random(0, height));
		
		init();
	}
	
	Blip(float x_, float y_) {
		location = new PVector(x_, y_);
		
		init();
	}
	
	void init() {
		velocity = new PVector(0, 0);
		acceleration = PVector.random2D();
		acceleration.mult(0.3);
		
		genRandID();
		
		neighbors = new ArrayList();
	}
	
	void genRandID() {
		uniq_id = "" + char( int( random(33,126) ) ) + char( int( random(33,126) ) ) + char( int( random(33,126) ) ) + char( int( random(33,126) ) ) + char( int( random(33,126) ) ) + char( int( random(33,126) ) );
	}
	
	void stopAcceleration() {
		acceleration.set(0, 0);
		invisible = true;
	}
	
	void setAcceleration(PVector vel_) {
		acceleration = vel_.copy();
	}
	
	void setAcceleration(float x_, float y_) {
		acceleration.set(x_, y_);
	}
	
	void update() {
		// movement
		velocity.add(acceleration);
		velocity.limit(1);
		
		location.add(velocity);
		
		if(location.x > width) {
			location.x -= width;
		} else if(location.x < 0) {
			location.x += width;
		}
		
		if(location.y > height) {
			location.y -= height;
		} else if(location.y < 0) {
			location.y += height;
		}
	}
	
	void countNeighbors(ArrayList neighbors_) {
		for(int i = 0; i < neighbors_.size(); i++) {
			Blip other_blip = neighbors_.get(i);
			
			if(uniq_id.equals(other_blip.uniq_id)) {
				continue;
			}
			
			float distance = dist(
				location.x,
				location.y,
				other_blip.location.x,
				other_blip.location.y
			);
			
			if(distance <= maxDist) {
				PVector other_loc = other_blip.location.copy();
				
				neighbors.add(other_loc);
			}
		}
	}
	
	void drawLines() {
		pushMatrix();
		pushStyle();
		
		noFill();
		
		if(invisible) {
			stroke(color(225,255,23));
		} else {
			stroke(color(18,123,229));
		}
		
		num_neighbors = 0;
		
		// lines
		if(neighbors.size() > 0) {
			for(int i = (neighbors.size() - 1); i >= 0; i--) {
				PVector other_loc = neighbors.get(i);
				
				line(
					location.x,
					location.y,
					other_loc.x,
					other_loc.y
				);
				
				neighbors.remove(i);
				
				num_neighbors++;
			}
		}
		
		popStyle();
		popMatrix();
	}
	
	void draw() {
		if(invisible) {
			return;
		}
		
		// dot
		pushMatrix();
		pushStyle();
		
		float radius = (1.0 + num_neighbors);
		
		fill(color(225,255,23));
		noStroke();
		
		ellipse(location.x, location.y, radius, radius);
		
		popStyle();
		popMatrix();
	}
}
// based on https://www.instagram.com/p/BlNh5pYFRoq/

ArrayList blips;
ArrayList letter_points;

void setup() {
	blips = new ArrayList();
	
	size(640, 640);
	
	// moving blips
	for(int i = 0; i < 450; i++) {
		Blip blippy = new Blip();
		blippy.setAcceleration(new PVector(random(-1, 1), random(-1, 1)));
		
		blips.add( blippy );
	}
	
	// Letter
	letter_points = new ArrayList();
	
	letter_points.add(new PVector(49.92733436584472,0));
	letter_points.add(new PVector(59.92321573769907,0));
	letter_points.add(new PVector(69.92013312096475,0));
	letter_points.add(new PVector(79.9231842791359,0));
	letter_points.add(new PVector(89.91264299012488,0));
	letter_points.add(new PVector(99.9218610338308,0));
	letter_points.add(new PVector(109.92200226540939,0));
	letter_points.add(new PVector(119.91173835754394,0));
	letter_points.add(new PVector(129.91644609034296,0));
	letter_points.add(new PVector(139.92563886554913,0));
	letter_points.add(new PVector(149.91476028198144,0));
	letter_points.add(new PVector(159.92544161540224,0));
	letter_points.add(new PVector(169.91995214864613,0));
	letter_points.add(new PVector(179.91935117816553,0));
	letter_points.add(new PVector(189.9289579241909,0));
	letter_points.add(new PVector(199.9267153977044,0));
	letter_points.add(new PVector(209.9127637577057,0));
	letter_points.add(new PVector(219.9292025943361,-0.14125804342736956));
	letter_points.add(new PVector(229.90687423609197,-0.6015195295214653));
	letter_points.add(new PVector(239.87767178991058,-1.3811967854847171));
	letter_points.add(new PVector(249.81175165929497,-2.4786924113921125));
	letter_points.add(new PVector(259.7234383513883,-3.897913047694601));
	letter_points.add(new PVector(269.56172396128545,-5.634389804115635));
	letter_points.add(new PVector(279.35222601473333,-7.696560451984406));
	letter_points.add(new PVector(289.05528732615176,-10.08164179638494));
	letter_points.add(new PVector(298.6746151929442,-12.796709186621012));
	letter_points.add(new PVector(308.21317220173,-15.851772810853436));
	letter_points.add(new PVector(317.6105645948562,-19.2361542750994));
	letter_points.add(new PVector(326.8904107585084,-22.967773340307176));
	letter_points.add(new PVector(336.0135060147573,-27.042367462752736));
	letter_points.add(new PVector(344.98130184700466,-31.473007903817926));
	letter_points.add(new PVector(353.76467751400816,-36.25942852882487));
	letter_points.add(new PVector(362.3352488250192,-41.399833333902066));
	letter_points.add(new PVector(370.68373256097266,-46.90340741445834));
	letter_points.add(new PVector(378.78211305706645,-52.767589010274975));
	letter_points.add(new PVector(386.6119659762583,-58.995300042644956));
	letter_points.add(new PVector(394.1385455231233,-65.57450006123109));
	letter_points.add(new PVector(401.3455058600346,-72.50566059533972));
	letter_points.add(new PVector(408.20928832843134,-79.78092236311285));
	letter_points.add(new PVector(414.7081046798661,-87.39074789322156));
	letter_points.add(new PVector(420.80878203319895,-95.30566801618261));
	letter_points.add(new PVector(426.5086112859101,-103.52934207648039));
	letter_points.add(new PVector(431.77479539967146,-112.01731221120805));
	letter_points.add(new PVector(436.60919061488323,-120.77025496200885));
	letter_points.add(new PVector(440.99310578942897,-129.74742527356662));
	letter_points.add(new PVector(444.9321475675686,-138.94781598605275));
	letter_points.add(new PVector(448.4151434623997,-148.32580764928366));
	letter_points.add(new PVector(451.4411848305525,-157.84297831732488));
	letter_points.add(new PVector(454.02635014329877,-167.5071986947587));
	letter_points.add(new PVector(456.1737904836032,-177.27866323803028));
	letter_points.add(new PVector(457.89360444371715,-187.12771636727388));
	letter_points.add(new PVector(459.20032662479355,-197.03683820955825));
	letter_points.add(new PVector(460.1093530792685,-206.98871126763055));
	letter_points.add(new PVector(460.6373474288722,-216.98042627372817));
	letter_points.add(new PVector(460.79973154923545,-226.9805883121854));
	letter_points.add(new PVector(460.631959217461,-236.98146357986582));
	letter_points.add(new PVector(460.1427113771629,-246.96601511706046));
	letter_points.add(new PVector(459.3136902544648,-256.9301383714378));
	letter_points.add(new PVector(458.12716134734455,-266.85404080733656));
	letter_points.add(new PVector(456.56121561028414,-276.7447286437755));
	letter_points.add(new PVector(454.6052289298539,-286.54061042026404));
	letter_points.add(new PVector(452.2349855240835,-296.2606979032597));
	letter_points.add(new PVector(449.44060304833806,-305.85812786552884));
	letter_points.add(new PVector(446.20838915987275,-315.31298036793044));
	letter_points.add(new PVector(442.52098788516344,-324.61660082823624));
	letter_points.add(new PVector(438.3812135359667,-333.71578588807984));
	letter_points.add(new PVector(433.7816087426418,-342.59382138478367));
	letter_points.add(new PVector(428.7281403366383,-351.2146978910454));
	letter_points.add(new PVector(423.2185004214465,-359.56502851693193));
	letter_points.add(new PVector(417.27238231641115,-367.6052396773218));
	letter_points.add(new PVector(410.900945725498,-375.3184120324231));
	letter_points.add(new PVector(404.13333923338797,-382.6739862888144));
	letter_points.add(new PVector(396.9880280733276,-389.66210822847586));
	letter_points.add(new PVector(389.4856291490399,-396.27498897394435));
	letter_points.add(new PVector(381.66610763022544,-402.49373359086724));
	letter_points.add(new PVector(373.5376775072822,-408.329391127321));
	letter_points.add(new PVector(365.14472868112136,-413.76859826505216));
	letter_points.add(new PVector(356.5065528632484,-418.8190037002522));
	letter_points.add(new PVector(347.6619426859077,-423.4785134519823));
	letter_points.add(new PVector(338.6314721080439,-427.7571820396255));
	letter_points.add(new PVector(329.435462165159,-431.6649595706849));
	letter_points.add(new PVector(320.0733286577463,-435.2190887439251));
	letter_points.add(new PVector(310.6058979675018,-438.4137735296679));
	letter_points.add(new PVector(301.03242863579874,-441.2668143567073));
	letter_points.add(new PVector(291.3508129066766,-443.7929593172108));
	letter_points.add(new PVector(281.60120479188856,-445.9950471027196));
	letter_points.add(new PVector(271.78081551675206,-447.88630323746736));
	letter_points.add(new PVector(261.908069418309,-449.4740325246868));
	letter_points.add(new PVector(251.97949785239996,-450.7680684922636));
	letter_points.add(new PVector(242.03539044463656,-451.7719264347176));
	letter_points.add(new PVector(232.07241411384064,-452.4942410668617));
	letter_points.add(new PVector(222.06569779550847,-452.94192227977413));
	letter_points.add(new PVector(212.07830279288697,-453.1169113250845));
	letter_points.add(new PVector(202.0790764138079,-453.12));
	letter_points.add(new PVector(192.0737629575864,-453.11999999999995));
	letter_points.add(new PVector(182.0721021998115,-453.11999999999995));
	letter_points.add(new PVector(172.08271752357484,-453.12));
	letter_points.add(new PVector(162.0767316461631,-453.12));
	letter_points.add(new PVector(152.0824276149529,-453.12));
	letter_points.add(new PVector(142.08474601998924,-453.12));
	letter_points.add(new PVector(132.07823622926867,-453.12));
	letter_points.add(new PVector(122.07544653655961,-453.12));
	letter_points.add(new PVector(112.07071779067832,-453.12));
	letter_points.add(new PVector(102.07520453453063,-453.12));
	letter_points.add(new PVector(92.0737840156816,-453.12));
	letter_points.add(new PVector(82.06589975347043,-453.12));
	letter_points.add(new PVector(72.0665994568239,-453.12));
	letter_points.add(new PVector(62.07644334856654,-453.12));
	letter_points.add(new PVector(52.0693833065033,-453.12));
	letter_points.add(new PVector(49.92,-445.2791389436927));
	letter_points.add(new PVector(49.92,-435.26999009856604));
	letter_points.add(new PVector(49.92,-425.2663017847866));
	letter_points.add(new PVector(49.92,-415.2666083908081));
	letter_points.add(new PVector(49.92,-405.2711162120104));
	letter_points.add(new PVector(49.919999999999995,-395.27179205417633));
	letter_points.add(new PVector(49.92,-385.2833577346802));
	letter_points.add(new PVector(49.92,-375.2742145601132));
	letter_points.add(new PVector(49.919999999999995,-365.2838564876374));
	letter_points.add(new PVector(49.92000000000001,-355.27047181988326));
	letter_points.add(new PVector(49.919999999999995,-345.26998599939634));
	letter_points.add(new PVector(49.92,-335.2693743537202));
	letter_points.add(new PVector(49.919999999999995,-325.27975427996716));
	letter_points.add(new PVector(49.919999999999995,-315.2657492067774));
	letter_points.add(new PVector(49.92,-305.2806233239938));
	letter_points.add(new PVector(49.92,-295.2767124509811));
	letter_points.add(new PVector(49.92,-285.28010842678134));
	letter_points.add(new PVector(49.92,-275.2745618863746));
	letter_points.add(new PVector(49.92,-265.2818173757901));
	letter_points.add(new PVector(49.92,-255.2812812168617));
	letter_points.add(new PVector(49.92,-245.27123014540774));
	letter_points.add(new PVector(49.92,-235.2698104735371));
	letter_points.add(new PVector(49.92,-225.27399051358807));
	letter_points.add(new PVector(49.919999999999995,-215.2803965806961));
	letter_points.add(new PVector(49.92,-205.2650128643308));
	letter_points.add(new PVector(49.92,-195.26627962789163));
	letter_points.add(new PVector(49.92000000000001,-185.28168011963368));
	letter_points.add(new PVector(49.92,-175.26906897216105));
	letter_points.add(new PVector(49.92000000000001,-165.26946788283996));
	letter_points.add(new PVector(49.92,-155.2646536437061));
	letter_points.add(new PVector(49.92,-145.27870390675847));
	letter_points.add(new PVector(49.92,-135.27966932403083));
	letter_points.add(new PVector(49.92,-125.27931950821657));
	letter_points.add(new PVector(49.92,-115.27528862648717));
	letter_points.add(new PVector(49.92,-105.2720506231708));
	letter_points.add(new PVector(49.92,-95.26497749984264));
	letter_points.add(new PVector(49.92,-85.2782979747218));
	letter_points.add(new PVector(49.92,-75.26855129742063));
	letter_points.add(new PVector(49.92,-65.2828480605036));
	letter_points.add(new PVector(49.92,-55.278106711925936));
	letter_points.add(new PVector(49.92,-45.27310266725647));
	letter_points.add(new PVector(49.92,-35.272622764930134));
	letter_points.add(new PVector(49.92,-25.271457643689352));
	letter_points.add(new PVector(49.92,-15.270654489174484));
	letter_points.add(new PVector(49.92,-5.265196652328595));
	letter_points.add(new PVector(130.56,-70.40358419418337));
	letter_points.add(new PVector(130.56,-80.39093639403582));
	letter_points.add(new PVector(130.56,-90.40431877288502));
	letter_points.add(new PVector(130.56,-100.39822354335338));
	letter_points.add(new PVector(130.55999999999997,-110.39631825073157));
	letter_points.add(new PVector(130.56,-120.39422149157618));
	letter_points.add(new PVector(130.56,-130.40153915528208));
	letter_points.add(new PVector(130.56,-140.39982116785214));
	letter_points.add(new PVector(130.56,-150.3967320210999));
	letter_points.add(new PVector(130.56,-160.39643256753624));
	letter_points.add(new PVector(130.56,-170.40631200953794));
	letter_points.add(new PVector(130.56,-180.39870850575716));
	letter_points.add(new PVector(130.56,-190.39903327345127));
	letter_points.add(new PVector(130.56,-200.40100209867632));
	letter_points.add(new PVector(130.56,-210.40408779561986));
	letter_points.add(new PVector(130.56,-220.39740622799437));
	letter_points.add(new PVector(130.56,-230.40107184756235));
	letter_points.add(new PVector(130.56,-240.39315028283744));
	letter_points.add(new PVector(130.56,-250.40850112204498));
	letter_points.add(new PVector(130.56,-260.3946231106296));
	letter_points.add(new PVector(130.56,-270.39525275619235));
	letter_points.add(new PVector(130.56,-280.3921379871899));
	letter_points.add(new PVector(130.56,-290.4007697947509));
	letter_points.add(new PVector(130.56,-300.3986381835275));
	letter_points.add(new PVector(130.56,-310.4004499513976));
	letter_points.add(new PVector(130.56,-320.3967013532994));
	letter_points.add(new PVector(130.56,-330.4020682374248));
	letter_points.add(new PVector(130.56,-340.395263671875));
	letter_points.add(new PVector(130.56,-350.4021198969567));
	letter_points.add(new PVector(130.56,-360.3969212670112));
	letter_points.add(new PVector(130.56,-370.3991269345628));
	letter_points.add(new PVector(130.56,-380.396934135817));
	letter_points.add(new PVector(136.957779817041,-384));
	letter_points.add(new PVector(146.9559869094193,-384));
	letter_points.add(new PVector(156.96249364367918,-384));
	letter_points.add(new PVector(166.96257117971777,-384));
	letter_points.add(new PVector(176.95770850539208,-384));
	letter_points.add(new PVector(186.96315742492675,-384));
	letter_points.add(new PVector(196.95849801063537,-384));
	letter_points.add(new PVector(206.96742450027494,-383.88482457936624));
	letter_points.add(new PVector(216.95114951475205,-383.4853350719636));
	letter_points.add(new PVector(226.92592147820392,-382.77563357772186));
	letter_points.add(new PVector(236.86876600384713,-381.7291694766283));
	letter_points.add(new PVector(246.77220635541977,-380.3150710541634));
	letter_points.add(new PVector(256.6126611328125,-378.50079345703125));
	letter_points.add(new PVector(266.3504195429656,-376.25461769898203));
	letter_points.add(new PVector(275.974129654679,-373.5352610629506));
	letter_points.add(new PVector(285.4263035916723,-370.31060297087765));
	letter_points.add(new PVector(294.6909282530626,-366.532359092791));
	letter_points.add(new PVector(303.693888183379,-362.1723805787867));
	letter_points.add(new PVector(312.3635728789866,-357.20845224894583));
	letter_points.add(new PVector(320.65635453080756,-351.60750350265766));
	letter_points.add(new PVector(328.4711041223444,-345.3855896605644));
	letter_points.add(new PVector(335.753113616074,-338.54670523750247));
	letter_points.add(new PVector(342.4553918896616,-331.10445754788816));
	letter_points.add(new PVector(348.49420395699946,-323.1480856103044));
	letter_points.add(new PVector(353.86200310351563,-314.7145688873681));
	letter_points.add(new PVector(358.5441818138701,-305.8783403526724));
	letter_points.add(new PVector(362.5474151964926,-296.7130109531088));
	letter_points.add(new PVector(365.8896644970504,-287.30298758986623));
	letter_points.add(new PVector(368.618421085272,-277.66871043750086));
	letter_points.add(new PVector(370.7583778146925,-267.9212186111581));
	letter_points.add(new PVector(372.3674690972572,-258.0403435267147));
	letter_points.add(new PVector(373.48159180054444,-248.09805158668198));
	letter_points.add(new PVector(374.143927568479,-238.12523785180994));
	letter_points.add(new PVector(374.3954579226324,-228.12509797344566));
	letter_points.add(new PVector(374.24814102025204,-218.13147769696383));
	letter_points.add(new PVector(373.65307751477474,-208.1572476740752));
	letter_points.add(new PVector(372.5682424148967,-198.21062478858673));
	letter_points.add(new PVector(370.9534732818604,-188.33855556488038));
	letter_points.add(new PVector(368.7705928701148,-178.58799882970183));
	letter_points.add(new PVector(365.978316273611,-168.98879585299656));
	letter_points.add(new PVector(362.54095331534745,-159.59021545030177));
	letter_points.add(new PVector(358.44838588450307,-150.4856048785937));
	letter_points.add(new PVector(353.67211403830237,-141.6997027135761));
	letter_points.add(new PVector(348.22076009244284,-133.311599459625));
	letter_points.add(new PVector(342.11754042566986,-125.38689745162498));
	letter_points.add(new PVector(335.4102245969349,-117.98866634774372));
	letter_points.add(new PVector(328.1278240479366,-111.1330370510032));
	letter_points.add(new PVector(320.34139470281775,-104.8581780631945));
	letter_points.add(new PVector(312.121793960059,-99.17834435098355));
	letter_points.add(new PVector(303.5213297402859,-94.08207813799382));
	letter_points.add(new PVector(294.5946138638444,-89.55439156140201));
	letter_points.add(new PVector(285.4263035916723,-85.58839513137006));
	letter_points.add(new PVector(276.03228318579727,-82.14380626398489));
	letter_points.add(new PVector(266.4839259830676,-79.20361898452975));
	letter_points.add(new PVector(256.7934837255813,-76.7317998676654));
	letter_points.add(new PVector(247.00085037392796,-74.70400220892276));
	letter_points.add(new PVector(237.12984894765043,-73.09407911026226));
	letter_points.add(new PVector(227.20336733194065,-71.87864551971667));
	letter_points.add(new PVector(217.2439492154424,-71.03676378011588));
	letter_points.add(new PVector(207.25903438677864,-70.54915312365061));
	letter_points.add(new PVector(197.2577268218994,-70.4));
	letter_points.add(new PVector(187.25999999999996,-70.4));
	letter_points.add(new PVector(177.25551081759855,-70.4));
	letter_points.add(new PVector(167.25686895981434,-70.4));
	letter_points.add(new PVector(157.26401606038212,-70.4));
	letter_points.add(new PVector(147.25757847189905,-70.4));
	letter_points.add(new PVector(137.24907165527344,-70.4));
	/*
	letter_points.add(new PVector(33.45131402511597,0));
	letter_points.add(new PVector(43.45110405775701,0));
	letter_points.add(new PVector(53.438314098644256,0));
	letter_points.add(new PVector(63.44490055608114,0));
	letter_points.add(new PVector(73.4469048743263,0));
	letter_points.add(new PVector(83.44041902259904,0));
	letter_points.add(new PVector(93.43680837587323,0));
	letter_points.add(new PVector(103.45076204004621,0));
	letter_points.add(new PVector(113.44548598627715,0));
	letter_points.add(new PVector(123.45309607391115,0));
	letter_points.add(new PVector(133.44259023396725,0));
	letter_points.add(new PVector(143.44541663444488,-0.013511578385863686));
	letter_points.add(new PVector(153.43695496417692,-0.3665583554937796));
	letter_points.add(new PVector(163.39664844615837,-1.1953810337611008));
	letter_points.add(new PVector(173.3117718160961,-2.50054506160277));
	letter_points.add(new PVector(183.15613885289363,-4.285144817777351));
	letter_points.add(new PVector(192.88964000490915,-6.551303705440834));
	letter_points.add(new PVector(202.50127072916115,-9.309991022469477));
	letter_points.add(new PVector(211.9507333603398,-12.567597588031367));
	letter_points.add(new PVector(221.2249087156468,-16.34247393382215));
	letter_points.add(new PVector(230.2547528280735,-20.632120671272276));
	letter_points.add(new PVector(239.01234983787344,-25.45051406288534));
	letter_points.add(new PVector(247.45549869382546,-30.80646872149937));
	letter_points.add(new PVector(255.52998149184745,-36.69974131524768));
	letter_points.add(new PVector(263.18376097707005,-43.12691029200987));
	letter_points.add(new PVector(270.36758154384427,-50.08128580598117));
	letter_points.add(new PVector(277.02598328588203,-57.541270123398675));
	letter_points.add(new PVector(283.1106530199288,-65.47856163687162));
	letter_points.add(new PVector(288.5735389810086,-73.84489115430961));
	letter_points.add(new PVector(293.39333302020555,-82.6099993990954));
	letter_points.add(new PVector(297.54293476133915,-91.710546830431));
	letter_points.add(new PVector(301.0147473435047,-101.08906625357531));
	letter_points.add(new PVector(303.8123016337961,-110.68181045562942));
	letter_points.add(new PVector(305.9536373596847,-120.4362287078619));
	letter_points.add(new PVector(307.4684551893941,-130.33300332138353));
	letter_points.add(new PVector(308.3807318783014,-140.2816693043243));
	letter_points.add(new PVector(308.7300044025154,-150.28053221173226));
	letter_points.add(new PVector(308.56917406005516,-160.2758899286994));
	letter_points.add(new PVector(307.92118804245047,-170.25570644394395));
	letter_points.add(new PVector(306.7469119003843,-180.18265846358025));
	letter_points.add(new PVector(305.0046839737033,-190.03019573662647));
	letter_points.add(new PVector(302.65609014110777,-199.75133074916468));
	letter_points.add(new PVector(299.6711887812377,-209.28323071112996));
	letter_points.add(new PVector(296.01420327986125,-218.59661750598306));
	letter_points.add(new PVector(291.6790546959246,-227.60318921249655));
	letter_points.add(new PVector(286.6580986769511,-236.25245609989187));
	letter_points.add(new PVector(280.97866882713834,-244.46240757919045));
	letter_points.add(new PVector(274.64593067320817,-252.21147175512124));
	letter_points.add(new PVector(267.72194217458144,-259.42816547023693));
	letter_points.add(new PVector(260.26407056490405,-266.07891917523887));
	letter_points.add(new PVector(252.31613896608116,-272.1585242394022));
	letter_points.add(new PVector(243.9633693176401,-277.64315275399144));
	letter_points.add(new PVector(235.24863072427243,-282.5498012803381));
	letter_points.add(new PVector(226.24155233709158,-286.8835957327932));
	letter_points.add(new PVector(216.9872263905339,-290.66620302330404));
	letter_points.add(new PVector(207.52999471707344,-293.91898146886825));
	letter_points.add(new PVector(197.9134541810727,-296.6629829459241));
	letter_points.add(new PVector(188.18046209669808,-298.91895503842295));
	letter_points.add(new PVector(178.3439270139774,-300.7119811537661));
	letter_points.add(new PVector(168.4302008769103,-302.05999414211135));
	letter_points.add(new PVector(158.4803011176435,-302.9773813425401));
	letter_points.add(new PVector(148.49177823136972,-303.47998455930053));
	letter_points.add(new PVector(138.49450376837999,-303.5904));
	letter_points.add(new PVector(128.49173766399196,-303.5904));
	letter_points.add(new PVector(118.49628255562784,-303.59040000000005));
	letter_points.add(new PVector(108.49093295469284,-303.59040000000005));
	letter_points.add(new PVector(98.49881027947981,-303.5904));
	letter_points.add(new PVector(88.48256683861335,-303.5904));
	letter_points.add(new PVector(78.4865536780331,-303.5904));
	letter_points.add(new PVector(68.4833580246479,-303.5904));
	letter_points.add(new PVector(58.49385976113423,-303.5904));
	letter_points.add(new PVector(48.496688203100305,-303.5904));
	letter_points.add(new PVector(38.49320162553788,-303.5904));
	letter_points.add(new PVector(33.4464,-298.6367194276392));
	letter_points.add(new PVector(33.446400000000004,-288.63885655336975));
	letter_points.add(new PVector(33.446400000000004,-278.6334615082218));
	letter_points.add(new PVector(33.446400000000004,-268.63509121178004));
	letter_points.add(new PVector(33.446400000000004,-258.63124046289323));
	letter_points.add(new PVector(33.446400000000004,-248.6344561775805));
	letter_points.add(new PVector(33.446400000000004,-238.62564155546102));
	letter_points.add(new PVector(33.446400000000004,-228.64298156211152));
	letter_points.add(new PVector(33.44640000000001,-218.63247959961492));
	letter_points.add(new PVector(33.446400000000004,-208.625403176389));
	letter_points.add(new PVector(33.446400000000004,-198.63353465671491));
	letter_points.add(new PVector(33.446400000000004,-188.62653501341924));
	letter_points.add(new PVector(33.446400000000004,-178.62989447988502));
	letter_points.add(new PVector(33.446400000000004,-168.63560423746986));
	letter_points.add(new PVector(33.44640000000001,-158.63059944281645));
	letter_points.add(new PVector(33.4464,-148.62682797491652));
	letter_points.add(new PVector(33.446400000000004,-138.63529475686988));
	letter_points.add(new PVector(33.446400000000004,-128.6396353717111));
	letter_points.add(new PVector(33.446400000000004,-118.62593061380787));
	letter_points.add(new PVector(33.446400000000004,-108.63850680386646));
	letter_points.add(new PVector(33.446400000000004,-98.63264896778044));
	letter_points.add(new PVector(33.446400000000004,-88.62702935600281));
	letter_points.add(new PVector(33.446400000000004,-78.62628062691735));
	letter_points.add(new PVector(33.446400000000004,-68.62858321705396));
	letter_points.add(new PVector(33.446400000000004,-58.625204490885885));
	letter_points.add(new PVector(33.446400000000004,-48.62970238887952));
	letter_points.add(new PVector(33.446400000000004,-38.64254960471028));
	letter_points.add(new PVector(33.446400000000004,-28.629371826676277));
	letter_points.add(new PVector(33.446400000000004,-18.633490753150486));
	letter_points.add(new PVector(33.446400000000004,-8.637114916444569));
	letter_points.add(new PVector(87.47520000000002,-47.17759311676026));
	letter_points.add(new PVector(87.47519999999999,-57.16078756082058));
	letter_points.add(new PVector(87.47519999999999,-67.1717248946149));
	letter_points.add(new PVector(87.47519999999999,-77.16027885596453));
	letter_points.add(new PVector(87.4752,-87.1675348632183));
	letter_points.add(new PVector(87.47519999999999,-97.16144815525227));
	letter_points.add(new PVector(87.4752,-107.16674242846855));
	letter_points.add(new PVector(87.4752,-117.16875361477143));
	letter_points.add(new PVector(87.47519999999999,-127.16423881315511));
	letter_points.add(new PVector(87.4752,-137.1697024286418));
	letter_points.add(new PVector(87.4752,-147.1665838572361));
	letter_points.add(new PVector(87.4752,-157.16611444182826));
	letter_points.add(new PVector(87.4752,-167.16393134450888));
	letter_points.add(new PVector(87.4752,-177.17129918577336));
	letter_points.add(new PVector(87.4752,-187.16972101370993));
	letter_points.add(new PVector(87.4752,-197.17582044899814));
	letter_points.add(new PVector(87.4752,-207.16986592463826));
	letter_points.add(new PVector(87.4752,-217.1720105558748));
	letter_points.add(new PVector(87.4752,-227.17607323455815));
	letter_points.add(new PVector(87.4752,-237.16929155625402));
	letter_points.add(new PVector(87.4752,-247.1635787099258));
	letter_points.add(new PVector(87.4752,-257.1632513933182));
	letter_points.add(new PVector(97.35590787191391,-257.28000000000003));
	letter_points.add(new PVector(107.35444227905273,-257.28000000000003));
	letter_points.add(new PVector(117.36593578359839,-257.28000000000003));
	letter_points.add(new PVector(127.3563109398678,-257.28000000000003));
	letter_points.add(new PVector(137.37341622818616,-257.23208030272195));
	letter_points.add(new PVector(147.350475110502,-256.8159795861089));
	letter_points.add(new PVector(157.32239786247854,-255.92347966983598));
	letter_points.add(new PVector(167.20392706781988,-254.4960363873621));
	letter_points.add(new PVector(176.99070396273584,-252.45639762058187));
	letter_points.add(new PVector(186.61188656223845,-249.7239621454194));
	letter_points.add(new PVector(195.9716651273081,-246.21726091226571));
	letter_points.add(new PVector(204.96977583111152,-241.85150763663646));
	letter_points.add(new PVector(213.45212147753185,-236.57320920073818));
	letter_points.add(new PVector(221.27632500764116,-230.34979839543024));
	letter_points.add(new PVector(228.27657675016712,-223.22066187739807));
	letter_points.add(new PVector(234.33537829468764,-215.2710621195976));
	letter_points.add(new PVector(239.3820582214237,-206.64101839866845));
	letter_points.add(new PVector(243.40592703561083,-197.5046113083206));
	letter_points.add(new PVector(246.4685991184904,-187.98463085085086));
	letter_points.add(new PVector(248.64473414304985,-178.226422290239));
	letter_points.add(new PVector(250.03129848264757,-168.32936400869306));
	letter_points.add(new PVector(250.72574961212186,-158.3550318954385));
	letter_points.add(new PVector(250.810538560389,-148.35150732117071));
	letter_points.add(new PVector(250.25051381434912,-138.3586424788394));
	letter_points.add(new PVector(248.9525948862349,-128.45402749266427));
	letter_points.add(new PVector(246.82377027032882,-118.68744548520381));
	letter_points.add(new PVector(243.77986470231863,-109.16721383524313));
	letter_points.add(new PVector(239.75666861044317,-100.0199772454165));
	letter_points.add(new PVector(234.72131334854367,-91.37930210265517));
	letter_points.add(new PVector(228.70929425950763,-83.40583917211083));
	letter_points.add(new PVector(221.78751086800347,-76.2016763777365));
	letter_points.add(new PVector(214.07476537344178,-69.8450302691314));
	letter_points.add(new PVector(205.70709340791072,-64.36296393308206));
	letter_points.add(new PVector(196.84284694167556,-59.75233082366211));
	letter_points.add(new PVector(187.59751367586853,-55.96268054841161));
	letter_points.add(new PVector(178.06691345538889,-52.93337842699205));
	letter_points.add(new PVector(168.34358392736846,-50.60557547100876));
	letter_points.add(new PVector(158.4756613803413,-48.916420233294495));
	letter_points.add(new PVector(148.5488029826626,-47.817565621260556));
	letter_points.add(new PVector(138.56535748282673,-47.25873281766772));
	letter_points.add(new PVector(128.5627497898087,-47.168));
	letter_points.add(new PVector(118.5616646986127,-47.168));
	letter_points.add(new PVector(108.5700412817493,-47.168));
	letter_points.add(new PVector(98.56140513521602,-47.168));
	letter_points.add(new PVector(88.56584997285604,-47.16799999999999));
	*/
	for(int i = 0; i < letter_points.size(); i++) {
		PVector letter_pt = letter_points.get(i);
		
		Blip blippy = new Blip(
			(letter_pt.x + (width / 2) - 240),
			(letter_pt.y + (height / 2) + 226)
		);
		blippy.stopAcceleration();
		
		blips.add( blippy );
	}
}

void draw() {
	background(10);
	
	for(int i = 0; i < blips.size(); i++) {
		Blip blip = blips.get(i);
		
		blip.update();
	}
	
	for(int i = 0; i < blips.size(); i++) {
		Blip blip = blips.get(i);
		
		blip.countNeighbors(blips);
		blip.drawLines();
	}
	
	//for(int i = 0; i < blips.size(); i++) {
	//	Blip blip = blips.get(i);
	//	
	//	blip.draw();
	//}
	
	if(frameCount == 50) { save("preview.png"); }
}
please visit our Contact Us page to get in touch
pyxol © 2021