Site Logo


Welcome to my Project Index for Open Source software, Video Games, Web Utilities, and more!

On this page, I have links to a variety of projects that I have created or participated in the creation of. This includes my Touhou Danmakufu projects, significant software projects, and Open Source projects. Over the years I've built a lot of stuff for the Danmakufu Community - tutorials, databases, and more, and this page details those and others.

Please note that the list of projects here is not comprehensive and that many small and unrelated projects may not be here. See my GitHub for all of my Open Source repositories. My (former) official Dammakufu Project Release Thread on Maidens of the Kaleidoscope can be accessed using the following link: Sparen's Code Dump - this is where I typically announce and release smaller-scale Danmakufu projects, though it is inactive as of Feb 2020 due to the forum going into read-only mode. Backups of my major project posts can be found at the MotK Game Post Archives here on this website

Sparen's Danmakufu Utilities

In this section, I will detail all of the primary utilities and projects I have developed for the Danmakufu Community. All of these are Open Source projects that are either part of this website or are on GitHub. The contents of this section are based on Sparen's Danmakufu Utilities on MotK, though note that that thread is no longer being maintained.

DNHArt/DNHLP + Danmakufu Video Database

DNHArt and DNHLP are my two primary video playlists on Youtube for Danmakufu. DNHArt has been ongoing singe RaNGE 10 and is standard gameplay footage. DNHLP consists of Let's Plays.

For more information on DNHArt and DNHLP, refer to the information pages here on my website: DNHArt + DNHLP
Playlist links: DNHArt (Youtube) DNHLP (Youtube)
List of all videos: DNHArt List

Finally, a more recent service is the Danmakufu Video Database. Here I log all videos I can find of a given scripter's scripts. Notably, this has gotten rather nasty to maintain since I'm the only one ever editing it despite the fact that it's publicly editable, so I typically hesitate to add new scripters if I'm going to have to maintain their pages. Refer to the Danmakufu Video Database website for more information.
The Danmakufu Video Database began work in July 2016 and uses Bootstrap and JavaScript. Want to contribute? The GitHub source can be found here.

Danmakufu Contest Database

In Jan-Feb 2016, I decided to log all of the Danmakufu contests that had taken place in the Western Touhou Community. This project involved dredging through years worth of threads here on RaNGE and going into the archives of LOCAA, but since then it has become a rather useful history tracker.

The Contest Database is updated whenever a new contest happens. There are also a few utilities that produce SVG output for your viewing pleasure. For example, you can get the average number of participants per contest, number of contests hosted at any given location, a graph of contest participation over time (typically useful for scheduling contests), and a graph of each scripter's history over the years.

Danmakufu ph3 Tutorials & ph3 Function Reference

This is probably the one thing on this list that needs no explaining. My Danmakufu ph3 tutorials can be accessed here on my website at Sparen's Danmakufu ph3 Tutorials. All miscellaneous guides (using the archiver, using Bulletforge, Danmakufu style guide, etc) can be found here as well.

In addition, prior to the Danmakufu Wiki Apocalypse of 2018, the Wiki and MotK were going down for days at a time out of the blue so I decided to start backing up the Wiki. Lo and behold the entire thing went down for a few months soon afterwards. But anyways, I have a copy of the Danmakufu ph3 Function Reference here on my site. Have a feature request? Just let me know.

The original Japanese Docs have been backed up as well and, thanks to Niektory, are accessible without Text Encoding switches on GitHub Pages.

Danmakufu Scripts & Function Libraries

I've been producing function libraries for years and the standards vary wildly. In addition, they have absolutely *never* been logged in one place. In addition, some of them are scattered so badly or are so minor that I hadn't linked them on my website's project page.

Anyways, here's a basic list of the useful ones:

1. Sparen's Danmakufu Standard Library
My STL contains data structures and mathematics + bit operations in Danmakufu. These are typically useless unless Danmakufu is being used for something overly specialized. However, I also took the Text Autoformat Library I made for SeitenTouji and adapted + expanded on it, and it is now available as part of this distribution.

The AutoFormat Library allows you to have text automatically add line breaks ([r]), or truncate itself by the word or character. Although I built it for SeitenTouji's dialogue and manual text, the library is dumb and doesn't take word context into consideration, so carefully inserted line breaks will still be better for typical dialogue.

The Danmakufu STL began formal development in June 2018 and is technically an ongoing project.

2. Sparen's Sound Library
My ancient sound library contains basic sound object support. It's boring and easy to use.

Of all the things I did in Summer 2018, the STL was the first crazy idea. The APM was the second crazy idea.
Refer to the link for the details, but the APM is essentially a way for Danmakufu scripters to easily monitor their game - FPS, Score, Graze, Deaths and Bombs, etc. It has proven especially useful for locating lag spots and also has use when designing a scoring system for your script. It is easy to embed when you're starting a new project, though embedding it into a large problem may require some work if you want to annotate all of your spell cards.

The Danmakufu APM provides report generation in HTML with CSS and SVG, and allows for tracking of user-defined fields. It also allows for aggregation of data across multiple runs by storing data to CSV files. When combined with replays, the data provided by the APM can help optimize a script or locate common pain points for players in order to aid in balancing. While originally written in June and July 2018, it is a project that may see further development should new use cases be discovered. The source code can be found on GitHub. For more information, see the DNHAPM page on this website. Download v1.0

4. ReitOS
This is the third crazy thing I did in Summer 2018 - originally a gag spinoff for SeitenTouji, it became a desktop environment in Danmakufu ph3. It's currently useless outside of a proof of concept since I haven't finished setting up the Application Framework yet but there's a possibility for it to be used for actual practical purposes (though it might be better to write an application in a proper programming language).

ReitOS was developed from July 2018 - August 2018 in Danmakufu ph3 itself. Development has ceased due to lack of personal interest in moving forwards with the project.

Other Utilities

Some of the utilities I've written/made/contributed to will be listed in this section.

1. Sublime Text Syntax Highlighter for Danmakufu ph3 (GitHub)
This project is a Danmakufu syntax highligher for Sublime Text 2 that was made in collaboration with Drake. Refer to Drake's MotK thread or my Danmakufu Software Recommendations for links to the Sublime Text and Atom syntax highlighters.

Work on the Sublime Text Syntax Highlighter was primarily done from April 2014 to April 2016.

2. Random Spellcard Name Generator (GitHub)
The Random Spellcard Name Generator was a tool to generate spellcard names in a variety of common formats for Touhou and Len'en characters based on English translations of their existing spellcards. This tool was nice back when it was new, but it's since been abandoned. The archived MotK thread can be found here.

This project was made starting in April 2015 but was abandoned in early 2016. It featured words stored in a custom format and a command line interface for retrieving randomly generated spellcard names given user-provided parameters and the local database.

3. Danmakufu Obfuscator (GitHub)
This tool was great in theory but near-useless in practice, since the Danmakufu parser ran into issues one of the things I did in it. It's useful if you want to remove your comments and documentation for a leaner distribution.

The Danmakufu Obfuscator was developed from June 2015-October 2015 in C++ and supports minor obfuscation for both 0.12m and ph3 (and to an extent, other C-like languages). Development ceased due to complications with Danmakufu's parser as mentioned prior.

Touhou Danmakufu Project Index

This section features my Touhou Danmakufu scripts (player scripts, bosses, stages, and full games).

All 'Phase #' pages contain information on Danmakufu Scripts that lack their own pages. Links ordered with oldest at top. [Note: These projects used to be split into 'phases' but this practice has been phased out as they were rather arbitrary.]

During my time working on Danmakufu, I published three full games, of which the SeitenTouji Project was the first to be an entirely original work. Due to the complexity and long duration of the project, it is listed below and has a dedicated subsite.

SeitenTouji Project

Other Open Source Projects

Over the years, I have come to participate in and create a number of Open Source projects. All links in this section point to the pages for the GitHub Repositories. Please be aware that some of these projects are no longer maintained/are now deprecated.

For a full list of my Open Source projects, please visit my GitHub page: Andrew Fan/Sparen's GitHub

The following are other Open Source projects I am hosting on Github (excluding those under 'Local JavaScript Project Index', which are hosted as part of this website). Danmakufu community related projects are located above under Sparen's Danmakufu Utilities.

  • Danmakanvas | Page on this site (Deprecated)
        • 2016, 2018, Oct 2019 - Ongoing
        • Primary Language(s): JavaScript
        • Technologies: HTML Canvas
        • Project: Danmaku prototyping system originally built as my 404 page. Integrated into Danmakufu tutorials as a visual aid in 2018. Turned into a repository with a shift towards cross-platform danmaku visualization and prototyping in 2019.
  • SVG Strip Map Generator | View Live Site
        • Sept 2018 - Ongoing
        • Primary Language(s): JavaScript
        • Technologies: Scalable Vector Graphics
        • Project: Spiritual Successor to my Map Generator that allows for Strip Maps to be defined using JSON.
  • Fate/Grand Order Drop Log | View Live Site
        • Oct 2017 - Dec 2019
        • Primary Language(s): JavaScript
        • Project: Log of all my data from F/GO NA. Primarily to log my runs for the crowdsourcing documents, but also features querying the local database (JSON) and has some other utilities built-in. Data collection stopped at the end of 2019
  • Sparen MapGen | View Live Site
        • Feb 2017 - Abandoned Feb 2017
        • Primary Language(s): JavaScript
        • Technologies: Scalable Vector Graphics
        • Project: Interactive Transit Map generation program that allows the user to generate and store a transit map using JSON.
  • Summer 2016 Network
        • Primary Language(s): JavaScript
        • Technologies: HTML5 Canvas
        • Project: Network visualization black box for Johns Hopkins IDIES that optimized the position of nodes and edges to provide an uncluttered visualization of data.

In addition to the above projects above, I have also participated in the following Open Source projects. For these I have a page on-site detailing my role and participation.

Hackathon Projects

As a Computer Science student at the Johns Hopkins University, I have participated in the university's biannual Hackathon. Below are links to some of my entries (Devpost/GitHub)

  • FALL 2015: Potholes of B'more (Devpost) | Source Code (GitHub)
        • Primary Language(s): JavaScript
        • Technologies: Google Maps API
        • Project: A visualization of potholes in Baltimore City, read from a CSV (from Baltimore's Open Data) and placed on a map using the Google Maps API.
  • SPRING 2016: NYTimeMachine (Devpost) | Source Code (GitHub)
        • Primary Language(s): JavaScript
        • Technologies: Angular JS, Bootstrap, New York Times API
        • Project: Get a snapshot of the world through the lens of the New York Times by selecting a time period and region of the world.
  • FALL 2016: focusbomb (Devpost) | Source Code (GitHub)
        • Primary Language(s): JavaScript
        • Technologies: Google Chrome
        • Project: Google Chrome Extension that aims to block websites to aim in preventing procrastination.
  • SPRING 2017: ThreatSync (Devpost)
        • Primary Language(s): Python
        • Technologies: AWS, Blockchain
        • Project: Sync knowledge on malicious IPs using a distributed ledger/blockchain shared across multiple companies.

Local JavaScript Project Index

Here I list a number of JavaScript Projects hosted locally on this website without their own individual Github repositories. Details on the ph3 Function Reference and Contest Database, integral components of this website, are located at the top of this page under Sparen's Danmakufu Utilities.

Miscellaneous Project Index

Community Projects & Contest Judging