Work

Systems built for performance, AI, and exploration.

20 projects

2026

  1. QED Notes: Markdown Notes for STEM

    A local-first Markdown note app for STEM students, built to typeset lecture notes as they are taken.

    Web Development Oct

    Details

    A local-first Markdown note app for STEM students, built to typeset lecture notes as they are taken. KaTeX renders math in place as you type, with snippets fast enough to keep up with a lecture, and plain-text blocks become function plots, live queries and clickable logic circuits with schematics and truth tables. Notes link to each other with backlinks and a graph view, and the app adds Excalidraw whiteboards, PDF slide markup saved as standard annotations, flashcards, tasks on a calendar, and LaTeX export that keeps \label, \eqref and \cite. There is no account and no database: notes stay plain .md files in a folder you choose, and that folder also opens in Obsidian. A browser demo is live, with macOS and Windows desktop apps coming soon.

    Markdown · KaTeX · Excalidraw · Mermaid · Local-first · EdTech

  2. 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.

    AI / Machine Learning Sep

    Details

    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.

    ASR · NeMo · Silero VAD · PyThaiNLP · NER · Privacy

  3. 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.

    Web Development Sep

    Details

    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.

    JavaScript · Canvas · WebM · MediaRecorder · Video

  4. 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.

    Web Development Sep

    Details

    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.

    React · TypeScript · Supabase · Vite · Recharts · PWA

  5. 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.

    Web Development

    Details

    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.

    Next · TypeScript · LMS · EdTech

  6. Online Judge / Grader for LMS

    A self-hostable online judge embedded in the RuffBlitz LMS for programming and algorithms courses.

    Web Development

    Details

    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.

    Elysia · Bun · Next · PostgreSQL · Redis · Judge0

  7. 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.

    AI / Machine Learning Research Project

    Details

    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.

    PyTorch · Computer Vision · Ordinal Regression · CNN · LINE

  8. Thai Disaster AI Agent (NSC 2026)

    A Thai-language conversational AI agent for disaster and environmental intelligence, delivered via LINE.

    AI / Machine Learning NSC 2026 Project

    Details

    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 AI · Gemini · RAG · Earth Engine · LINE · PyThaiNLP

  9. 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.

    AI / Machine Learning

    Details

    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.

    ASR · Chirp 3 · Google Cloud · Translation · WebSocket · PyThaiNLP

  10. Simple Pose Estimation

    A lightweight pose-estimation demo built on MediaPipe, used to power a playful "six-seven" gesture counter.

    AI / Machine Learning

    Details

    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.

    Python · MediaPipe · Computer Vision

  11. Thai RAG System

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

    AI / Machine Learning

    Details

    Python · AI · NLP

2025

  1. Conway's Game of Life Simulator

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

    Game Development Nov

    Details

    Go · Raylib · Game Development

  2. 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.

    Web Development Oct University Project

    Details

    Next · Gin · Gorilla · MongoDB

  3. Portfolio Website

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

    Web Development Jul

    Details

    Astro · TypeScript · GSAP · Tailwind CSS

  4. TA Beam Adventure

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

    Game Development University Project

    Details

    Java · OOP · Game Development

2024

  1. Thai License Plate Generator

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

    Web Development

    Details

    JavaScript · Web

2023

  1. 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.

    AI / Chatbot University Project

    Details

    Python · LangChain · ChromaDB · Research

  2. CU Stock Blitz

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

    Web Development Hackathon Project

    Details

    TypeScript · React · Supabase · Web Development

2022

  1. TUSCO Q&A Platform

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

    Web Development

    Details

    TypeScript · React · Framer Motion · Web Development

2021

  1. BM Announcement System

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

    Web Development

    Details

    PHP · SQL · System