Skip to content

Instantly share code, notes, and snippets.

View TheGreatRambler's full-sized avatar
🎯
Focusing

TheGreatRambler TheGreatRambler

🎯
Focusing
View GitHub Profile
@TheGreatRambler
TheGreatRambler / automata.ts
Last active June 3, 2024 14:30
colorful-life-rebooted
/*
_____ _ __ _ _ _ __ ______ _ _ _
/ __ \ | | / _| | | | | (_)/ _| | ___ \ | | | | | |
| / \/ ___ | | ___ _ __| |_ _ _| | | | _| |_ ___ | |_/ /___| |__ ___ ___ | |_ ___ __| |
| | / _ \| |/ _ \| '__| _| | | | | | | | | _/ _ \ | // _ \ '_ \ / _ \ / _ \| __/ _ \/ _` |
| \__/\ (_) | | (_) | | | | | |_| | | | |___| | || __/ | |\ \ __/ |_) | (_) | (_) | || __/ (_| |
\____/\___/|_|\___/|_| |_| \__,_|_| \_____/_|_| \___| \_| \_\___|_.__/ \___/ \___/ \__\___|\__,_|
Modern port of https://github.com/jaxry/colorful-life/ by @TheGreatRambler
*/
function AttachColorfulLifeAnimation(canvasElement: HTMLCanvasElement) {
@TheGreatRambler
TheGreatRambler / shader.glsl
Created June 8, 2023 00:34
Shader attempt at equirectangular projection from dual fisheye textures, doesn't handle stitching well
precision mediump float;
varying vec4 vPosition;
#define PI 3.14159265358979
#define APERTURE 180.0
#define INSTA360_Y_BOTTOM 0.02
#define INSTA360_Y_TOP 0.97
#define INSTA360_X_LEFT 0.0
#define INSTA360_X_RIGHT 1.0
@TheGreatRambler
TheGreatRambler / overengineered_bit_moving.cpp
Created June 20, 2022 23:47
Overengineered bit moving (right shifts only)
uint64_t src = start + size;
uint64_t dest = new_start + size;
if(src % 8 != 0) {
uint8_t b = bytes[src >> 3] >> (8 - src % 8) & ((1UL << (src % 8)) - 1);
if(dest % 8 == 0) {
bytes[(dest >> 3) - 1] &= 0xFF << (src % 8);
bytes[(dest >> 3) - 1] |= b;
// std::cout << "1" << std::endl;
@TheGreatRambler
TheGreatRambler / ColorfulLife.js
Created June 3, 2022 23:48
Cleanup of code from jaxry/colorful-life to run on your own website, including typescript implementation
(function() {
var canvas = document.getElementById("canvas");
var gl = canvas.getContext("webgl");
if(!gl) {
alert('Could not load WebGL');
}
class Renderer {
constructor(canvas, gl, renderWidth, renderHeight) {
@TheGreatRambler
TheGreatRambler / course_id_to_data_id.go
Last active April 2, 2023 04:11
Super Mario Maker 2 Data ID to Course ID
package id
import (
"fmt"
"strings"
)
func CourseIdToNum(id string) (int, error) {
id = strings.ToUpper(strings.ReplaceAll(id, "-", ""))
// https://github.com/kinnay/NintendoClients/wiki/Data-Store-Codes#super-mario-maker-2
@TheGreatRambler
TheGreatRambler / index.js
Created August 21, 2020 03:43
Get valid MC names from a text file
const lineByLine = require("n-readlines");
const axios = require("axios");
const fs = require("fs");
function has(str, char) {
return str.indexOf(char) !== -1;
}
const liner = new lineByLine("./words.txt");
var outFile = fs.createWriteStream("validnames.txt");
@TheGreatRambler
TheGreatRambler / bundle.min.js?1579794062
Last active January 23, 2020 16:41
Paddle Force Mod
(function() {
var MEMORY_KEYS_KEY, MEMORY_MAX_ITEMS, slice = [].slice, extend = function(child, parent) {
for (var key in parent) {
if (hasProp.call(parent, key))
child[key] = parent[key]
}
function ctor() {
this.constructor = child
}
ctor.prototype = parent.prototype;
@TheGreatRambler
TheGreatRambler / diep.js
Last active May 7, 2018 21:59
Win quizlet live! Not working yet.
// wshook.js
var wsHook={};
(function(){function e(a){this.bubbles=a.bubbles||!1;this.cancelBubble=a.cancelBubble||!1;this.cancelable=a.cancelable||!1;this.currentTarget=a.currentTarget||null;this.data=a.data||null;this.defaultPrevented=a.defaultPrevented||!1;this.eventPhase=a.eventPhase||0;this.lastEventId=a.lastEventId||"";this.origin=a.origin||"";this.path=a.path||[];this.ports=a.parts||[];this.returnValue=a.returnValue||!0;this.source=a.source||null;this.srcElement=a.srcElement||null;this.target=a.target||null;this.timeStamp=
a.timeStamp||null;this.type=a.type||"message";this.__proto__=a.__proto__||MessageEvent.__proto__}var d=wsHook.before=function(a,c){return a},g=wsHook.after=function(a,c){return a};wsHook.resetHooks=function(){wsHook.before=d;wsHook.after=g};var f=WebSocket;WebSocket=function(a,c){this.url=a;var b=(this.protocols=c)?new f(a,c):new f(a);var d=b.send;b.send=function(a){arguments[0]=wsHook.before(a,b.url)||a;d.apply(this,arguments)};b._addEventListener=b.addEventListener;b.addEventListen
@TheGreatRambler
TheGreatRambler / cowsay.sh
Last active April 18, 2018 01:05
Cowsay fun
#!/bin/bash
# copyright TheGreatRambler
# List all cowsay cows with a fun fortune!
stringtouse="$(fortune)"
timesaround=0
for i in $(cowsay -l)
do
if (($timesaround > 2))
@TheGreatRambler
TheGreatRambler / webworkerfunc.js
Last active March 24, 2018 17:47
A function that can be used to run functions in web workers
// Function that can run a function supplied in a web worker
// MIT License Copyright TheGreatRambler
// Free to use
function runInWebWorker(func, argsarray, callback) {
// func: function to use
// argsarray: the arguments to pass
// callback: the callback function
var blobdata = 'var returnstatement=(' + func.toString() + ')(' + argsarray.join(",") + ');self.postMessage(returnstatement);self.close();';
console.log(blobdata);
var blobURL = URL.createObjectURL(new Blob([blobdata], {