Clay Liang

Projects

Most of these exist because I needed something and the available options were either overkill or didn't exist.

๐Ÿ’ฑ Fin Tools

tuixue.nl/fintools ยท 2025

Nine financial tools in a single HTML file: live FX with 30-day sparklines, crypto prices, US stock quotes, real inflation data by country, DCF valuation, compound interest, loan/mortgage, stock return, and purchasing power calculators. Plus an ASML tracker that plots the live price against my own DCF range.

No sign-up, no backend, no tracking. Four live APIs (ECB, CoinGecko, Alpha Vantage, World Bank), all client-side. The kind of financial toolkit I wanted as a student reading annual reports for the first time.

HTMLJavaScriptCoinGecko APIAlpha VantageWorld Bank APIFrankfurter API

๐ŸŽฅ Video Annotation Tool

GitHub ยท 2024

Browser-based video labeling tool. Frame-by-frame navigation, timestamped multi-class annotations, CSV export. Built for the Tsinghua lab when CVAT and Labelbox turned out to be absurdly heavy for what we needed: timestamps and labels, not bounding boxes.

Lesson: First version had 12 buttons. The version people used had 4. Building for researchers is UX education you can't get from a course.
PythonFlaskOpenCVJavaScript

๐ŸŽต Offline Music Recommendation

GitHub ยท 2024

End-to-end ML pipeline that recommends music based on detected mood โ€” speech recognition โ†’ sentiment analysis โ†’ content-based filtering โ†’ local playback. The constraint: entirely offline, zero API calls, everything runs on one machine. Not production-grade, but a useful exercise in building without a safety net.

PythonSpeech RecognitionSentiment Analysis

โšก csvtool

GitHub ยท 2024

C++ CSV parser. Exists because pandas choked on an 8GB file during a research task. Memory-mapped I/O, zero-copy parsing. Finishes in ~40 seconds what pandas does in ~3 minutes. Small project, but apparently "I wrote a C++ parser because Python was too slow" makes for a good interview story.

C++

๐ŸŒ AI-Eco

GitHub ยท 2025

Interactive visualisation of AI's environmental cost โ€” energy, water, e-waste โ€” built for a Leiden interaction design course. Users compare models via Chart.js dashboards and a Three.js 3D landscape that degrades as you increase AI usage. Melodramatic, but it got the point across.

HTMLJavaScriptThree.jsChart.js

๐ŸŒ tuixue.nl

tuixue.nl ยท 2025

This site. Static HTML, GitHub Pages, custom domain. No frameworks, no build step, no dependencies. Fourteen files, 189KB total, loads in under a second anywhere. I understand every line of code because I wrote every line of code.

HTMLCSSJavaScriptGitHub Pages