(HOME)(SIDE-PROJECT)
(KO/EN)

Millennial Works · 2025.08 ~ Present

AI experience kiosks, built with Electron

Frontend Developer · Kiosk Client

I build the kiosk client that runs unattended AI experiences such as AI photos, tarot, personality tests, photo cards, and AI music at pop-up stores and exhibitions. It has run 65-70 events without major issues, from game companies, theme parks, and department store pop-ups to an event in Singapore. I migrated the legacy C# WPF client to Electron + Next.js, and the renewed version is deployed on ~150 kiosks, handling ~30K card payments and ~8K coupon uses in a year.

WebSiteUrl ->
Kiosk content on a large screen at a pop-up store booth
Experience content at an idol-themed pop-up (brands and faces blurred)

Kiosks that run on site

65-70
offline events in Korea and abroad
~150
renewed kiosks deployed
~30K
card payments a year (~8K coupon uses)
2,000+
peak payments in a day
Five digital kuji kiosk screens and card readers on an event hall wall
Five digital kuji kiosks in a shopping mall event hall
Two visitors, seen from behind, looking at a kiosk screen
K-pop experience event, debut fortune content
A hand holding a badge and photo card made at the AI photo booth
Game IP pop-up, badge and card made with AI photo

One program per booth, JSON settings per store

I designed the kiosk client with Electron and Next.js, owning IPC, logging and data management, and device authentication. Each booth runs its own program, and per-store settings are toggled through JSON configuration.

  • AI photo
  • Photo strips
  • Tarot
  • Personality test
  • Kuji
  • Claw machine
  • Roulette
  • AI music
  • Voice chat (LLM)
  • …etc

Kiosks that last a day without staff

  • WatchDog restarts the app if it dies; on-site "app closed" calls stopped after rollout
  • Kiosk mode and automatic shutdown at closing time
  • Sentry monitoring with Slack alerts to catch failures like AI polling right away
  • A remote management client customized from open source
  • A back-office for kiosk sales and device status

From payment to print

Coupon codes, cards, Samsung Pay, and Apple Pay are integrated through the KICC payment module (payments, refunds, cardless refunds). Results print on photo, card, and POS receipt printers, and can be downloaded with an on-screen QR code. Downloadable files are deleted automatically after a set time.

Three kiosk screens: coupon entry, payment method, and AI music genre selection
Coupon entry, payment method, and AI music genre screens (client logos blurred)

Overseas events in 5 languages

next-intl supports Korean, English, Japanese, and Simplified and Traditional Chinese, and dayjs formats dates and times for the event's country.

Accessible kiosks

Windows TTS reads the screen aloud, and Electron dual screens show an assistive display alongside the main one.

AI models as on-site content

From an AI music SaaS to an open-source model

AI music content such as "make your debut song" depended on an external SaaS. Switching to the open-source ACE-STEP 1.5 Turbo brought the API cost per request to $0 and removed the dependency on an outside service. A 120-second song takes about 8-14 seconds in the queue.

ComfyUI workflow and job queue, each job taking 7.6 to 13.9 seconds
Workflow nodes blurred

One photo, eight styles

In the AI photo content, users pick one of eight styles such as virtual character, anime, pixel, retro, figure, and cubism, and the photo is converted and printed. Style guide assets are managed in 5 languages.

AI style examples: virtual character, anime, romantic fantasy, pixel, retro

A model that answers yes or no to a camera feed

Given questions like "Is there a fire?" or "Are the person's eyes closed?", the vision language model Clef-Flash judges the camera feed as yes or no, used for on-site safety monitoring. It runs a Q8_0 quantized model with llama.cpp CUDA on a single Windows PC (RTX 4070 Ti SUPER 16GB, 16GB RAM) without external APIs, at about 110-130ms per judgment.

No on a wall, yes on a fire scene. Real-time speed, faces blurred

A 3D model from one photo

The Idol model turns a single image into a 3D Gaussian Splat, used for event content that needed 3D output. On a single Windows PC (RTX 4070 Ti SUPER 16GB, 16GB RAM), one generation with 262,144 Gaussians and 50 steps takes about 50 seconds at 94% GPU usage.

Generation at 10x speed, rotation in real time

Running Hugging Face models myself

I like pulling new models, running them on a local GPU, and measuring speed and resource usage to see if they can become on-site content. Models I've run so far:

  • Z-Image
  • Qwen-Image
  • BEN2
  • WAN
  • LTX
  • MiniMax H3 (Pika H3)
  • FLUX
  • SD 1.5
  • ACE-STEP
  • Idol (Image → 3D)
  • Clef-Flash (VLM)
  • Laya
  • Qwen3
  • gpt-oss
  • Gemma 3
  • DeepSeek
  • GLM
  • Llama
  • Mistral
  • …etc

FrontEnd Developer

KoJaem Portfolio

Copyright 2026. all rights reserved.

Designed by Jinju Woo · Implemented by KoJaem