Selected Work

Projects & Experiments

Systems built for performance, AI, and exploration.

19 entries

  1. 01 AI / Machine Learning September 2026 Personal Project

    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.

    ASRNeMoSilero VADPyThaiNLPNERPrivacy
  2. 02 Web Development September 2026 Personal Project

    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.

    JavaScriptCanvasWebMMediaRecorderVideo
  3. 03 Web Development September 2026 Personal Project

    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.

    ReactTypeScriptSupabaseViteRechartsPWA
  4. 04 Web Development 2026 Personal Project

    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.

    NextTypeScriptLMSEdTech
  5. 05 Web Development 2026 Personal Project

    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.

    ElysiaBunNextPostgreSQLRedisJudge0
  6. 06 AI / Machine Learning 2026 Research Project

    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.

    PyTorchComputer VisionOrdinal RegressionCNNLINE
  7. 07 AI / Machine Learning 2026 NSC 2026 Project

    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.

    Vertex AIGeminiRAGEarth EngineLINEPyThaiNLP
  8. 08 AI / Machine Learning 2026 Personal Project

    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.

    ASRChirp 3Google CloudTranslationWebSocketPyThaiNLP
  9. 09 AI / Machine Learning 2026 Personal Project

    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.

    PythonMediaPipeComputer Vision
  10. 10 AI / Machine Learning 2026 Personal Project

    Thai RAG System

    A Retrieval-Augmented Generation (RAG) system customized for the Thai language.

    PythonAINLP
  11. 11 Game Development November 2025 Personal Project

    Conway's Game of Life Simulator

    Building Conway's Game of Life using Go and Raylib for graphics rendering.

    GoRaylibGame Development
  12. 12 Web Development October 2025 University Project

    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.

    NextGinGorillaMongoDB
  13. 13 Web Development July 2025 Personal Project

    Portfolio Website

    Personal portfolio website showcasing projects and skills with smooth animations and responsive design.

    AstroTypeScriptGSAPTailwind CSS
  14. 14 Game Development 2025 University Project

    TA Beam Adventure

    An RPG-style game developed in Java as a university project, featuring object-oriented programming principles and engaging gameplay mechanics.

    JavaOOPGame Development
  15. 15 Web Development 2024 Personal Project

    Thai License Plate Generator

    A web application that creates custom Thai license plates based on official naming conventions.

    JavaScriptWeb
  16. 16 AI / Chatbot 2023 University Project

    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.

    PythonLangChainChromaDBResearch
  17. 17 Web Development 2023 Hackathon Project

    CU Stock Blitz

    "Thinc. 10 Days Project" - A fast-paced stock-simulated trading platform developed during the 10-day hackathon project at Thinc.

    TypeScriptReactSupabaseWeb Development
  18. 18 Web Development 2022 Project

    TUSCO Q&A Platform

    A Q&A platform system developed for Thailand Upper Southern Computing Olympiad.

    TypeScriptReactFramer MotionWeb Development
  19. 19 Web Development 2021 Project

    BM Announcement System

    A PHP-based GPA announcement and communication system in Benjamarachutit School.

    PHPSQLSystem