Selected Work
Projects & Experiments
Systems built for performance, AI, and exploration.
19 entries
- 01
asr-redact: Thai Speech PII Redaction
A pipeline that finds personally identifiable information in Thai speech and censors it in the audio itself, not just in the transcript. Silero VAD packs speech into ≤30 s windows so cuts land in silence, Typhoon ASR (a NeMo RNNT model, driven directly rather than through its convenience wrapper) returns subword timestamps, and two detectors (PyThaiNLP NER plus pattern rules for identifiers dictated digit by digit) mark the spans. Because an RNNT emits a token at or after the sound it describes, each token is widened back toward the previous emission so a redaction covers the whole word rather than its tail. Every input yields a beeped/silenced/noised copy and a JSON report of what was removed and when.
- 02
Message Bubble Generator
A dependency-free browser tool that animates a chat conversation on a chroma-key background and exports it as a WebM for video editing. Every bubble is drawn on a <canvas> at output resolution (nothing is a DOM element), so the recording is pixel-identical to the preview. Messages type themselves one grapheme at a time with the bubble growing to fit, and the stack eases upward as new bubbles arrive. Ships iMessage/LINE/Flat styles, 9:16 / 1:1 / 16:9 output, per-side colours, an alpha-channel mode, and a live mode for narrating a conversation while recording. Handles Thai wrapping and tone-mark clipping, which is why it exists: it produces the chat cutaways for RuffBlitz videos.
- 03
Personal Finance SPA
A personal finance app with no application server: the React SPA talks straight to Supabase Postgres, so Row Level Security is the entire security boundary. Tracks daily spend, subscriptions, income, investments, goals and debts, with dashboard aggregation pushed down into Postgres views rather than pulled into the browser. Subscriptions turn into real transactions through a client-side catch-up on load, kept idempotent by a partial unique index so opening the app twice never double-charges. A Menagerie view renders the month's transactions as a den of wandering creatures, species from the category and size from the amount.
- 04
RuffBlitz School: Block-Based LMS
A learning management platform where courses are assembled from composable "blocks": Lego-like pieces (text, video, quizzes, code, and more) that instructors snap together to build lessons. Aimed at flexible, hands-on course authoring.
- 05
Online Judge / Grader for LMS
A self-hostable online judge embedded in the RuffBlitz LMS for programming and algorithms courses. Compiles and runs Python/C/C++ through a sandboxed execution engine (Judge0 → isolate) driven by horizontally-scaled judge workers, with role-based access (admin/staff/student), group-gated problem visibility, ICPC/IOI-style contests with scoreboard freeze, subtasks and testlib checkers. Built on Next.js + Elysia (Bun), PostgreSQL/Drizzle, and Redis/BullMQ.
- 06
Urine Color Classifier
A lightweight ordinal image classifier that grades urine color on a 5-point scale (Clear → Very Dark) as a coarse hydration proxy, built for CPU inference. Treats the ordered classes as ordinal regression (class-weighted CE + Squared-EMD loss), with color-preserving augmentation, effective-number class balancing, and a held-out + 5-fold stratified protocol. Reaches QWK 0.963 on the test set with 100% adjacent accuracy (every error is off-by-one), while a trivial color+GBM baseline matches ~98% of it, making the efficiency case for tiny deployment. Delivered as a LINE chatbot via the LINE SDK and Messaging API, so users get a hydration reading by sending a photo in chat. Not a diagnostic tool.
- 07
Thai Disaster AI Agent (NSC 2026)
NSC 2026 project advised by Prof. Peerapon Vateekul. A Thai-language conversational AI agent for disaster and environmental intelligence, delivered via LINE. Unifies fragmented government open data into one chat interface: a Vertex AI RAG Engine (Gemini 2.5 Flash-Lite + Typhoon 2.1) over DDPM/HII/DMR documents, live environment tools (Google Flood Hub, Air Quality API, Air4Thai, RID, TMD, GISTDA), and geospatial analysis via Google Earth Engine (AlphaEarth & Dynamic World) for flood, landslide, and burn-scar mapping, answering in under 8s (p95) with map widgets and official citations.
- 08
Medical Event Captioning (BRIDGE-AI Declaration 2026)
Live Thai ⇄ English medical event captioning shown on a conference monitor, tuned for medical vocabulary and Thai/English code-switching on stage. Streaming ASR with Google Chirp 3 (Speech v2) handles English clinical terms embedded in Thai speech natively, with WebRTC VAD segmentation, PyThaiNLP normalization, clinical-term masking around Google Translate, and a browser display over WebSocket offering live language swap and downloadable section transcripts with LLM summaries. Local Whisper/Typhoon/Qwen3 backends remain as offline fallbacks.
- 09
Simple Pose Estimation
A lightweight pose-estimation demo built on MediaPipe, used to power a playful "six-seven" gesture counter. Explores real-time body-landmark tracking from a webcam feed.
- 10
Thai RAG System
A Retrieval-Augmented Generation (RAG) system customized for the Thai language.
- 11
Conway's Game of Life Simulator
Building Conway's Game of Life using Go and Raylib for graphics rendering.
- 12
Chat Application with Go WebSocket and Next.js
Real-time chat application using Go for the backend WebSocket server and Next.js for the frontend interface.
- 13
Portfolio Website
Personal portfolio website showcasing projects and skills with smooth animations and responsive design.
- 14
TA Beam Adventure
An RPG-style game developed in Java as a university project, featuring object-oriented programming principles and engaging gameplay mechanics.
- 15
Thai License Plate Generator
A web application that creates custom Thai license plates based on official naming conventions.
- 16
Line Bot integrated with RAG System
Individual Study Project (2023/1) - A Line Bot that integrates a Retrieval-Augmented Generation (RAG) system for enhanced conversational capabilities.
- 17
CU Stock Blitz
"Thinc. 10 Days Project" - A fast-paced stock-simulated trading platform developed during the 10-day hackathon project at Thinc.
- 18
TUSCO Q&A Platform
A Q&A platform system developed for Thailand Upper Southern Computing Olympiad.
- 19
BM Announcement System
A PHP-based GPA announcement and communication system in Benjamarachutit School.
No projects in this category