An avatar

Ninji's Website

cursed content since 2015

Here are some cool things I've made over the past few years.

Active/Released Projects

MeteoNook (2020)
Web app for predicting weather in Animal Crossing: New Horizons by deriving the seed from weather observations.
Causson (2019-2020)
A highly experimental programming language with an expressive type system, aiming to make complex GUI apps less painful to write. Developed as part of my dissertation for my CS degree.
WindEmu (2019-2020)
Emulator for the Psion Series 5mx and other EPOC32 devices.
FlicksForAll (2019)
Free tweak for jailbroken iPhones on iOS 12 and 13 that adds customisable shortcuts to the keyboard, based off the iPad 'key flick' shortcuts.
SpoonsMap (2019)
An interactive map visualising every JD Wetherspoon pub in the UK, ranked by price relative to other Wetherspoon outlets.
robert.js (2018)
JavaScript tools for rendering the assistants from Microsoft Bob and Office 97, as well as some other miscellaneous Bob data files.
Kamek (2015-2018)
Framework for compiling and injecting new assembly, C and C++ code into GameCube and Wii games.
Reggie! Level Editor (2009)
A cross-platform graphical level editor for New Super Mario Bros. Wii, developed by Tempus and I using PyQt4.
Newer Super Mario Bros. Wii (2009-2013)
Unofficial sequel to New Super Mario Bros. Wii, created as a very extensive patch to the original game. Developed by myself (lead programmer) and some other fans from around the world.
Nelumbo (2011-2016)
Ruby library with a simple DSL for creating interactive bots for Furcadia.
midihackery.js (2017)
JavaScript library that wraps libTiMidity (transpiled to JS via Emscripten) to allow MIDI synthesis in web pages and playback through the WebAudio API.
2048 for GBA (2014)
A homebrew recreation of 2048 for the Game Boy Advance.

Defunct Projects

bitBoard (2013)
Old-school-style lightweight forum software, loosely inspired by AcmlmBoard. Written using Python, Flask and SQLAlchemy.
Bees! (2014)
My own take on an online version of Cards Against Humanity. Written using Node.js and jQuery.
LayoutStudio (2010-2012)
Graphical viewer and editor for UI layout files generated by NintendoWare on the Wii (.brlyt/.brlan). Written using C++ and Qt.
NW4RTools (2011-2012)
C# library and tools for working with 3D models and animations generated by NintendoWare on the Wii (.brres).
CMap (2012-2013)
Third-party map editor for Furcadia. Cross-platform, written with C++/Qt 5.
VulpIRC (2013-2014)
IRC bouncer using a custom mobile-friendly protocol for clients, with an Android client.
MarioUnmaker (2015)
Viewer for level files extracted from Super Mario Maker on Wii U.
ArchBreaker (2016)
Tool for accessing the Miitomo API, spoofing the game client's authentication process and modifying the player's inventory.

Social Media Bots

Telegram Bot @DittySongBot
Inline bot that takes text you input and passes it through the back-end API used by the Ditty app to turn it into a song. The result is transcoded using ffmpeg and sent to Telegram as a voice message. (Now defunct as Ditty has shut down)
Telegram Bot @PatterBot
Inline bot that takes text you input and sends it through the CereVoice Scottish text-to-speech voices. The result is sent to Telegram as a voice message.

Try it: type @PatterBot something into a conversation, but don't press Send, wait for the menu to come up, then select a voice.

Telegram Bot @NutButtonBot
Inline bot that takes text you input and superimposes it onto the "NUT" button meme. The result is sent to Telegram. button with shitpost on it
Twitter Bot @EveryNutButton
Posts a NUT button with a random word on it, every two hours.
Twitter Bot @CAPSLOCKBOT
Tweet text at this bot and it will reply with an AESTHETIC image containing that text. example of capslockbot
Twitter Bot @ClipArtBot
Tweet an image at this bot and it will add random clipart to it and send it back to you. example of clipartbot
Twitter Bot @BestOpinionPoll
Posts four random Twitter polls every day with items and topics selected from Wikipedia categories.
Twitter Bot @jean_things
Posts a random jeans-based portmanteau (jortmanteau) every three hours.
Twitter Bot @1f44f_bot
Tweets random things to get REALLY 👏 ANGRY 👏 ABOUT. Sometimes random sentences from Wikipedia, sometimes just random combinations of words.