Skip to content

Instantly share code, notes, and snippets.

@olygood
Last active November 11, 2022 21:33
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save olygood/ee701a23e99c67c24032b58914fd8e62 to your computer and use it in GitHub Desktop.
Save olygood/ee701a23e99c67c24032b58914fd8e62 to your computer and use it in GitHub Desktop.
Franks laboratory
const myImage = new Image();
myImage.src = 'data:image/jpeg;base64,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AAAAAABCcmRUVW50RiNSbHQAAAAAAAAAAAAAAABCbGQgVW50RiNSbHQAAAAAAAAAAAAAAABSc2x0VW50RiNQeGxAUgAAAAAAAAAAAAp2ZWN0b3JEYXRhYm9vbAEAAAAAUGdQc2VudW0AAAAAUGdQcwAAAABQZ1BDAAAAAExlZnRVbnRGI1JsdAAAAAAAAAAAAAAAAFRvcCBVbnRGI1JsdAAAAAAAAAAAAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAAAAAEGNyb3BXaGVuUHJpbnRpbmdib29sAAAAAA5jcm9wUmVjdEJvdHRvbWxvbmcAAAAAAAAADGNyb3BSZWN0TGVmdGxvbmcAAAAAAAAADWNyb3BSZWN0UmlnaHRsb25nAAAAAAAAAAtjcm9wUmVjdFRvcGxvbmcAAAAAADhCSU0D7QAAAAAAEABIAAAAAQACAEgAAAABAAI4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAHg4QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAA4QklNBAIAAAAAAAIAADhCSU0EMAAAAAAAAQEAOEJJTQQtAAAAAAAGAAEAAAAIOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0EAAAAGAAAAAAAAAAAAAAEAAAABAAAAAAYAbQBhAHIAaQBvADEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAA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IHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE0IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMTItMzBUMDU6MTc6MjkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMTItMzBUMDU6MzA6MzkrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTEyLTMwVDA1OjMwOjM5KzAxOjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjllZDA4MjY4LWJkMDQtNDg0ZS04Nzk5LTIzMzYzMzdjOTRkMCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmI3Yzc2NzZjLTRhNTctMTFlYi05OGQ1LWUyOTY0MWIyMmNiYyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjhiZTUzMTQwLTAzNjYtZjc0NC05MjRjLTQzZTQxOGJhZGI4ZCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6TGVnYWN5SVBUQ0RpZ2VzdD0iMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZTUzMTQwLTAzNjYtZjc0NC05MjRjLTQzZTQxOGJhZGI4ZCIgc3RFdnQ6d2hlbj0iMjAyMC0xMi0zMFQwNToxNzoyOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWJhOTZkNy1jOGI0LTk1NGQtYTNkOS1mZmQxMTFjOTkzMjQiIHN0RXZ0OndoZW49IjIwMjAtMTItMzBUMDU6MTc6MjkrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE0IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NWJjYWFiNjgtNTVmNC1hNDRiLThlZTQtZjBiYWJjNmI5ZjZkIiBzdEV2dDp3aGVuPSIyMDIwLTEyLTMwVDA1OjI5OjI0KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBpbWFnZS9qcGVnIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL2pwZWcgdG8gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YjY0ZTViNDUtOGJkNi01YjQyLTlkZGQtZjk4ODNlNjBiMTMyIiBzdEV2dDp3aGVuPSIyMDIwLTEyLTMwVDA1OjI5OjI0KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0NzIyNmE2LTUzNWQtOTU0Zi1hN2IzLTZlOWY0MWQyOTg4ZiIgc3RFdnQ6d2hlbj0iMjAyMC0xMi0zMFQwNTozMDozOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjllZDA4MjY4LWJkMDQtNDg0ZS04Nzk5LTIzMzYzMzdjOTRkMCIgc3RFdnQ6d2hlbj0iMjAyMC0xMi0zMFQwNTozMDozOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NDcyMjZhNi01MzVkLTk1NGYtYTdiMy02ZTlmNDFkMjk4OGYiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo5NmZmODY1ZS00YTU3LTExZWItOThkNS1lMjk2NDFiMjJjYmMiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4YmU1MzE0MC0wMzY2LWY3NDQtOTI0Yy00M2U0MThiYWRiOGQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/uACFBZG9iZQBkQAAAAAEDABADAgMGAAAAAAAAAAAAAAAA/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wgARCAEAAQADAREAAhEBAxEB/8QAfgABAQEBAQEAAAAAAAAAAAAAAAsKAwgEAQEBAQAAAAAAAAAAAAAAAAAACQoQAAEDBQEAAAAAAAAAAAAAAARAoAVgkAMJOQIRAAMAAQIDCQEAAAAAAAAAAAIDBAERFBIFCABAUGCQEwa3eBUSAQAAAAAAAAAAAAAAAAAAAKD/2gAMAwEBAhEDEQAAANNAAAAAIy4AAAAALNAAAAAAAAAAIy4AAAAALNAAAAAAAAIy4ANbMbd04AAAqD2SwsACA+AezSs2AAAAACMuADWzG3dOAAAKg9ksLAAgPgHs0rNgAAAAjLgvwAAl8Rt3TgAACoPZLCwAAAID4LNAAAAIy4L8AAJfEbd04AAAqD2SwsAAACA+CzQAACMuC/AACXxG3dOAAAAAKg9ksLAAAAgPgs0AAjLgvwAAl8Rt3TgAAAACoPZLCwAAAID4LNAAIy4L8AJfEbd04AqD2SwsAAACXxG3dOAKg9ksLAAAgPgs0AAjLgvwAl8Rt3TgCoPZLCwAAAJfEbd04AqD2SwsAACA+CzQCMuDWzG3dOAAKg9ksLAAAAAAl8Rt3TgAAADJNZLCwANbMbd04AAqD2SwsAAAAACXxG3dOAAAAMk1ksLAA1sxt3TgACoPZLCwAAAAAJfEbd04AqD2SwsACXxG3dOMk1ksLAA1sxt3TgACoPZLCwAAAAAJfEbd04AqD2SwsACXxG3dOMk1ksLAAvwAl8Rt3TgCoPZLCwAAAAAJfEbd04qD2SwsAAACA+AC/ACXxG3dOAKg9ksLAAAAAAl8Rt3TioPZLCwAAAID4AL8AAJfEbd04AqD2SwsAAACXxG3dOAKg9ksLAAAAgPgAvwAAl8Rt3TgCoPZLCwAAAJfEbd04AqD2SwsAAACA+AC/AACXxG3dOAAAAAAAAKg9ksLAAl8Rt3TjJNZLCwAL8AAJfEbd04AAAAAAAAqD2SwsACXxG3dOMk1ksLAAvwAl8Rt3TgDJNZLCwAAAAAAANbMbd04AAyTWSwsAC/ACXxG3dOAMk1ksLAAAAAAAA1sxt3TgADJNZLCwLNAIy4AAL8AAID4L8AAID4L8AAID4AALNAAIy4AAL8AAID4L8AAID4L8AAID4AALNAAAIy4L8AAAID4L8AAID4L8AAAID4LNAAAAIy4L8AAAID4L8AAID4L8AAAID4LNAAAAIy4L8AAAAAAAAAAID4LNAAAAIy4L8AAAAAAAAAAID4LNAAAAAIy4L8AAAAAAAAID4LNAAAAAAIy4L8AAAAAAAAID4LNAAAAAAAIy4AAAAAAALNAAAAOx3PiAABGXAAAAAAABZoAAAOx/9oACAECAAEFAGAH/9oACAEDAAEFAGAH/9oACAEBAAEFAKZ1x9DF+uPoZdmxDEZ/BkdIRy4YYgwj/9oACAECAgY/AAAf/9oACAEDAgY/AAAf/9oACAEBAQY/APLPQd+zel77v+DeAdB37N6Xvu/4N6s9LUoc5caRprYpRsCWcqESC+kwHIoSVdSlYItByxgjrqWMZl/oQWQ76NHMYd5K+Xecvq4ttfL74BuI6OAuBoagemdM5078iSRDqq6nKmllmUb6KaHmKkoQlQkxznMLAiI4yRFnGMY17f/Z';
myImage.addEventListener('load', function(){
const canvas= document.getElementById('canvas1');
const ctx = canvas.getContext('2d');
canvas.width = 500;
canvas.height = 706;
ctx.drawImage(myImage, 0,0, canvas.width, canvas.height);
let particulesArray = [];
const numberOfParticules = 5000;
class Particules {
constructor(){
this.x = Math.random()* canvas.width;
this.y = 0;
this.speed = 0;
this.velocity = Math.random() * 0.5;
this.size = Math.random() * 1.5 + 1;
}
update(){
this.y += this.velocity;
if(this.y >=canvas.height){
this.y = 0;
this.x = Math.random() * canvas.width;
}
}
draw(){
ctx.beginPath();
ctx.fillStyle = 'white';
ctx.arc(this.x, this.y, this.size, 0, Math.Pi *2);
ctx.fill();
}
}
function init(){
for(let i = 0; i < numberOfParticules; i++){
particulesArray.push(new Particules);
}
}
init();
function animate(){
ctx.drawImage(myImage,0,0, canvas.width, canvas.height);
ctx.globalAlpha = 0.05;
ctx.fillStyle = 'rgb(0, 0, 0)';
ctx.fillRect(0,0, canvas.width, canvas.height);
for(let i = 0; i < particulesArray.length; i++){
particulesArray[i].update();
particulesArray[i].draw();
}
requestAnimationFrame(animate);
}
animate();
});
/*HTML-----------------------------------------------------------------------------------------*/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<canvas id="canvas1"></canvas>
<script src="main.js"></script>
</body>
</html>
/*CSS---------------------------------------------------------------------------------------------*/
*{
padding: 0;
margin: 0;
box-sizing: border-box;
background: black;
}
canvas{
border: 2px solid white;
position: absolute;
top:50%;
left: 50%;
transform: translate(-50%,-50%);
width: 500px;
height: 706px;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment