SG Tan

View My GitHub Profile

Hello World

This site is basically a showcase of all of my “presentable-enough” mini-projects.

ubuntu@strixgoldhorn:~$ whoami

noob at programming. BUT AMAZING AT DESTROYING THINGS!!! (unintentionally)




ToC




Preface/Intro

All of these are done based on whichever topic interests me at that time. There are no “main goals” in any of the mini-project, other to just have fun and learn. Some of the “cooler” projects, in my opinion, are listed below:

The rest of the projects below are listed by newest to oldest.

Mini-Projects Showcase

Computer Vision in Arma 3

Computer Vision in Arma 3

Playing around with using YOLO trained on custom dataset of screenshots from Arma 3.

First version created June 2025.




Emitter Location Multiple Distance Measurements

Emitter Location Multiple Distance Measurements

Simple simulation of emitter location via multiple distance measurements

This simulation assumes the only power lost is from distance, and that the hostile emitter’s ERP is known.

By taking 4 measurements of received power in different points in a 3D space, the position of the hostile emitter can be found.

First version created January 2025.




METAR TAF Info

METAR/TAF Info

Displays METAR and TAF info for user-selected airports.

Uses CheckWX API to retrieve METAR and TAF info.

Saves API key, last theme selected, and ICAO codes to localstorage.

First version created September 2024.




Radar Display Types Showcase

Radar Display Types Showcase

Extremely basic “showcase” of the different radar displays.

Includes A, B, C, E scopes, and sector PPI.

Simple logic to determine whether OPFOR is in radar’s main lobe, modeled as a simple cone.

Done with p5js.

First version created August 2024.




LorenzBeam

Lorenz Beam simulation

Extremely basic “simulation” of the Lorenz beam approach system. Might revisit to improve the logic behind the amplitude of the sound generated.

Done with p5js.

First version created November 2023.




TicTacToe

Tic Tac Toe game against a semi-hardcoded computer player. Might revisit it to improve computer player.

UI (HTML + CSS) generated by ChatGPT, logic (JS) by yours truly.

First version created June - October 2023.




the-missile-knows-where-it-is

The missile knows where it is at all times. Video

Random 1-day weekend “project” for fun to practice coding before brain rot destroys whatever basic skills I have left.

Literally the most basic of basic of basic pure pursuit algorithm, and would perform worse than the InterceptTarget algorithm.

CLICK HERE to play around with it.

Or click here for a mock explanation.

Written with p5.js, “art” first in MS Paint then FireAlpaca to remove background. Annoying warning sounds generated with vanilla JS AudioContext.

First version created on 27 May 2023.




Not-A-Flight-Sim

NOT A FLIGHT SIM, please do not go to the site with the expectation of it being a DCS-esque flight sim.

It does, however, feature SAM sites to intercept the player.

No physics engine used. Barely added barebones acceleration and velocity. No air drag, lift, etc.

Written with ThreeJS. Terrain generated from perlin noise.

Created to learn global vs local positioning, matrixes, euler transforms, quaternions, dealing with object collisions.

Also to learn proportional navigation.

First version created in Early January 2023.




SwarmTest

Swarm logic testing

Swarm logic testing with a bunch of blue vs red ships.

Featuring: detection range design; primitive “communication” between blue ships while in range; ships trying to catch/escape ships of another color while in “visual” range; interception of red ships by blue ships once within “radar” range

No action taken to chase target of opportunity, though it will eliminate them if it comes within range.

Made with p5.js

First version created in Mid 2022.




InterceptTarget

Simple visualisation of one of the simplest target interception method.

Can be derived just from H2 Mathematics using vectors.

Made with p5.js

First version created in September 2022.




F1-Data

API is deprecated, hence webpage will not work

This site provides users with a timetable of upcoming race, and a page for comparing laptimes of drivers.

Features:

Uses the Ergast Developer Api for data of upcoming races, current driverstandings, and laptimes of drivers.

First version created in July 2022.




FoV-Subject Preview

This is a tool to allow photographers to preview the ratio of subject to fore/background, based on their input for the focal length of the lens, distance to the subject, and dimensions of subject.

Features:

Uses jQuery to actively read user input and update element’s HTML and CSS.

First version created in June 2022.




pOOP Assistant - python OOP Assistant

This site helps to generate getter and setter methods for python objects.

Uses jQuery to actively read user input and update output.

First (and probably only version) created in Early 2022.




Fake Virus Site

visit this cool site where I create a fake virus popup

This was to test out functionalities such as TTS. Purely for educational purposes only.

First (and only version) created in Late 2021.




RBS 70 Simulator

RBS 70 Simulator written with ThreeJS. First version created in March 2022.

1 week of coding + (re)learning Javascript resulted in this simplistic simulator

Models created in Blender, skybox and favicon with FireAlpaca.

click here for stable version of simulator

click here for UNSTABLE version of simulator

Background

RBS 70 is a MANPADS for VSHORAD / MSHORAD.

It is produced by Saab Bofors Dynamics, and is SACLOS using laser beam-riding missiles.

Laser needs to be uncaged, to allow it to be pointed at where the user points it to. Missile follows the laser beam.

Compared with other weapon systems that rely on radar or infrared guidance, this SACLOS system is invulnerable to countermeasures such as chaff or flares.

Features of simulator

Contains basic functions, such as:




visit this cool site where I create a fake virus popup

This was to test out functionalities such as TTS. Purely for educational purposes only.

First (and only version) created in Late 2021.




This site helps to generate getter and setter methods for python objects.

Uses jQuery to actively read user input and update output.

First (and probably only version) created in Early 2022.




Radar Display Types Showcase

Extremely basic “showcase” of the different radar displays.

Includes A, B, C, E scopes, and sector PPI.

Simple logic to determine whether OPFOR is in radar’s main lobe, modeled as a simple cone.

Done with p5js.

First version created August 2024.




METAR/TAF Info

Displays METAR and TAF info for user-selected airports.

Uses CheckWX API to retrieve METAR and TAF info.

Saves API key, last theme selected, and ICAO codes to localstorage.

First version created September 2024.




Emitter Location Multiple Distance Measurements

Simple simulation of emitter location via multiple distance measurements

This simulation assumes the only power lost is from distance, and that the hostile emitter’s ERP is known.

By taking 4 measurements of received power in different points in a 3D space, the position of the hostile emitter can be found.

First version created January 2025.