Giter VIP home page Giter VIP logo

What I'm currently working on

  • Procedural sound fiddlings
    • Going deep down an Enumerator rabbithole as I try to build a sound system with cyclical delays, filters, and channels using lazy enumerators for everything
    • Currently trying to understand the Enumerator::Lazy code so I can figure out why this doesn't work
  • Crypto research
  • Figuring out how to leverage fractals to make games without it being gimmicky (mandel6 currently)

List of hobby projects

Very incomplete, but these are the most fun to play with. I will likely continuously update this list with fancier gifs and more thrilling descriptions.

Game prototypes (all in pico-8)

❤️ Material Girl ❤️

material_girl p8

My first end-to-end prototype that goes from intro to ending sequence. This is based on an idea I had about representing getting close to people via dating as JRPG-style combat where you have to figure out and manage metrics that are only indirectly measurable through your "opponent"s words and actions. Conquer all the boys and stock up on accessories to land your dream beach hunk 💅🏖️💞 Lots of fun with promise-driven tween chains in this one.

play discuss source

🙈 Anx 🙈

anx p8

A prototype about the terror of other people as we go about the tedium of our day. This was basically an excuse to implement a (sloppy) 3d engine on top of a 2d engine (pico-8). Because it's so horribly inefficient I had to implement some kind of interesting lossy optimizations, it basically skips rendering certain columns of pixels and renders the other ones nearby as wider to fill in the gaps which leads to a somewhat pleasing shimmering effect when things get too busy in a certain part of the screen. Social stress leads to panic attacks, pixel deconstruction, and fisheye effects. Side effects of demons may occur.

play/discuss source

🚙 Traffic World 🚗

traffic_world p8

A quick protoype towards an idea I had about a world that was entirely covered by roads without destinations, just traffic all the time. As we all know though, traffic can be influenced by causing accidents which can be a very effective way of deterring police from interfering with your progress. They tend to respond quickly and firmly to transgression though...

play/discuss source

Fractal experiments

Mandel1 (pico-8)

mandel1 p8

My first foray into mandelbrot generators. This one is pretty straightforward but it has a fun tile-based continuous rendering method you can see below.

mandel1_0

play writeup source

Mandel2 (webgl)

My first webgl project. Turns out graphics cards are really good at calculating mandelbrot sets! This one renders a fixed iteration limit and allows you to wander around and zoom.

play source

Mandel3 (pico-8)

mandel3 p8

Time to get weird. This takes a bastardized version of the 3d-ish renderer from Anx to see the mandelbrot set growing out of the ground in 3d. It's pretty rough around the edges and you have to really work for it to get any particularly thrilling vistas, but still a reasonably pleasant hellscape to exist in for some time.

play source

Mandel4 (webgl)

An expansion of Mandel2, this time with continuous iteration. While moving it stays fixed but while stationary it continues iterating nearly endlessly. Very pleasing to find a deep spiral to let it churn through for a few minutes, and fun source material for making gif loops too. It keeps updating the URL to be your current position so it's easy to share your favorite spots just by copying from the URL bar.

mandel4_zoom_loop

play source

Mandel5 (pico-8)

mandel5 p8

I was curious about how to make multiple mandelbrot sets "collide" with each other, or how one might be able to link together many mandelbrot sets into a fractal field of sorts. This went through a lot of iterations. I started out trying to do a universal-law-of-gravity-inspired approach where each mandelbrot origin would all tug on orbits as they happened and with a lot of fudging I could get interesting results, but it didn't feel right because it was bastardizing how fractals work and the emergent shapes were too directly resultant from the arbitrary limits my code was imposing. Instead, eventually I settled on an interesting approach where it keeps track of a number of orbit possibilities and keeps testing them all as they fork and lead to new possibilities. The longest lasting hypothetical path ends up being the one counted. This leads to satisfyingly nuanced interactions between mandelbrot sets that are a good distance from each other. Below is a gif of moving one of three mandels back and forth, and then zooming in on the nuance of an overlap to see how it changes as the mandel continues to shift.

mandel5_1

Update: the difference between tracking only the orbit closest to its nearest origin vs tracking a pool of orbits for each iteration was pretty negligible, but there's a pretty huge difference in performance so I just set it to only track one orbit for now. Turns out another important thing was raising the max orbit range to be larger, still figuring out what the right size of it should be... Seems like somewhere around large enough to encompass the whole area of objects is ideal but scaling individual mandels up and down throws a bit of a wrench in that. Tried adjusting the max orbit range for each mandel but having too tight a range is just ugly and very unfractal-like. As-is it's coming together nicely, nearby fractals can be seen in the details of their neighbors sort of like a hall of mirrors. There's definitely some potential here for a really mind-bending game universe.

mandel5_6

play source

Mandel6 (webgl)

Basically a realtime/hires upgrade of Mandel5 into webgl, plus extra interactivity bonuses. You can click or tap and hold to create new mandels wherever you want and drag them around as they grow to see how it makes things shift. Once you release the pointer it'll freeze in that spot until you reload the page. Currently zooming in and making very small mandels is a bit buggy, but buggy fractals can be interesting too ;)

Screenshot from 2022-04-02 16-16-14

play source

John Wilkinson's Projects

anx icon anx

A 3D Pico-8 game about social anxiety

auto-starbucks icon auto-starbucks

A hack for not getting disconnected every 30 minutes from starbucks

bitfields icon bitfields

n Booleans = 1 Integer, saves columns and migrations.

bueller icon bueller

(maintained) A tool for crafting Ruby gems with the help of bundler

divided icon divided

Prototype of a game being made with a friend

divided-ng icon divided-ng

Heavily upgraded and largely rewritten version of Divided, a game I've had on the backburner for years

dotenv icon dotenv

Loads environment variables from `.env`.

dv_prototype icon dv_prototype

Pico8 prototyping sandbox for some features planned for Divided, a tile-based strategy mmo

evennia-minimud icon evennia-minimud

An experiment to make an RPG-style MUD with as little code as I can.

fold-shifter icon fold-shifter

A small vscode extension for shifting the comment fold up or down to the next cluster of empty lines/folds

genesis icon genesis

mmo with expressjs and socket.io draft

go_board icon go_board

javascript implementation of a go game recorder

grape-with-roar icon grape-with-roar

A demo of using Grape with Roar and some non-trivial HAL presenters.

guides icon guides

A guide for programming in style.

howxample icon howxample

Example of a simple project using the Howcast Client

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.