orange4glace

Personal Works ๊ฐœ์ธ ์ž‘์—…

* All the projects listed below were developed solely by me.

* ์•„๋ž˜ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋“ค์€ 1์ธ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ์ ํŠธ๋“ค์ž…๋‹ˆ๋‹ค.

Packaging box Mockup generator

ThreeJS

๋‹ค์–‘ํ•œ ๋ชจ์–‘์˜ ์ƒ์ž์˜ ๋ชฉ์—…์„ ์›น์—์„œ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ…์Šค์ฒ˜๋ฅผ ์ž…ํž ์ˆ˜ ์žˆ๊ณ , ์›ํ•˜๋Š” ์‚ฌ์ด์ฆˆ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‚ฌ์ด์ฆˆ์— ๋งž๋Š” ์ „๊ฐœ๋„์™€ ๋ชฉ์—…์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์ธ ํ™”๋ฉด ์ด๋™, ํ™•๋Œ€/์ถ•์†Œ, ์ด๋ฏธ์ง€ ์ด๋™, ํ™•๋Œ€/์ถ•์†Œ, ์ž๋ฅด๊ธฐ/๋Š˜๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋ณ€์ ์ธ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ์ „๊ฐœ๋„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” Scheme์„ XML ํŒŒ์ผ ํ˜•์‹์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ˆ˜์‹์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์—ฌ,
ํ•ด๋‹น ์ˆ˜์‹์„ ํŒŒ์‹ฑํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์— ๋”ฐ๋ผ ์‚ฌ์ด์ฆˆ์— ๋งž๋Š” ์ „๊ฐœ๋„๊ฐ€ ์œ ์—ฐํ•˜๊ฒŒ ๊ทธ๋ ค์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ˆ˜์‹์„ ๊ณ„์‚ฐํ•˜๋Š” ๋น„์šฉ์„ ์บ์‹ฑ์„ ํ†ตํ•ด ์ ์ ˆํžˆ ์ตœ์ ํ™” ํ•˜์˜€์Šต๋‹ˆ๋‹ค

XML Scheme์—๋Š” ํฌ๊ธฐ ๋ฐ ํฌ๊ธฐ ์ œ์•ฝ ์กฐ๊ฑด, ์ „๊ฐœ๋„ ๋ชจ์–‘, ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์œ„ํ•œ ํƒ€์ž„๋ผ์ธ ๋ฐ์ดํ„ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งค๋„๋Ÿฌ์šด ๋ชจ์„œ๋ฆฌ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฐ•์Šค๊ฐ€ ์ ‘ํžˆ๋Š” ๋ถ€๋ถ„ ๋˜ํ•œ ํ…์Šค์ฒ˜๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์™„์„ฑํ•œ ์ „๊ฐœ๋„๋Š” Vector ํ˜•์‹์˜ PDF๋กœ, ๋ชฉ์—… ํ™”๋ฉด์€ ์Šคํฌ๋ฆฐ์ƒท์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

A Web application that allows users to create mockups of various box shapes on the web.

Users can add images to apply textures. When they input desired sizes, it generates a real-time layout and mockup that match those dimensions.
It provides basic features such as screen navigation, zoom in/out, image movement, resizing, and cropping/stretching functions.

A custom XML shceme is used to represent layout with various lengths.
It can contain numbers, variables, and various formulas like min, max, sin, cos, find intersction of lines, tangent to a circle, etc..

The application creates layout dynamically by parsing the formula.
Some techniques are used to optimize a performance for parsing XML.

Also the XML contains many other informations like default size, size constraints, timeline for animating mockup and so on.

The texture of edge of box are drawn smoothly so the folding parts of the box feels natural.

A completed layout can be exported as a PDF including vector graphics and mockup screen can be exported as a screenshot.

Project 1 Image Project 1 Image

Gene Tree

Electron HTML5 Canvas

์œ ์ „์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฉ์‚ฌํ˜• ์ด์ง„ํŠธ๋ฆฌ๋กœ ์‹œ๊ฐํ™”ํ•ด์ฃผ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜
PC, Mac ์—์„œ ํ”„๋กœ๊ทธ๋žจ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Electron์œผ๋กœ ํŒจํ‚ค์ง•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋™, ํ™•๋Œ€/์ถ•์†Œ, ํšŒ์ „ ๋“ฑ ํ™”๋ฉด ์ œ์–ด ๊ธฐ๋Šฅ๊ณผ, ์ „์ฒด ํ™”๋ฉด์„ Upscalingํ•˜์—ฌ ๊ณ ํ•ด์ƒ๋„ (10,000 x 10,000) ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

A web application that visualizes genetic data as a radial binary tree has been packaged with Electron to be used as a program on PC and Mac.

It provides screen control functions such as moving, zooming in/out, and rotating, as well as the ability to upscale the entire screen and save it as a high-resolution (10,000 x 10,000) image file.

Project 2 Image 1 Project 2 Image 2

Gene Canvas

HTML5 Canvas

๋Œ€์šฉ๋Ÿ‰ ์œ ์ „์ž ๋ฐ์ดํ„ฐ๋ฅผ ์…€ ๊ตฌ์กฐ๋กœ ์‹œ๊ฐํ™”ํ•ด์ฃผ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๊ธฐ๋ณธ์ ์ธ ํ™”๋ฉด ์กฐ์ž‘๊ณ  ๋”๋ถˆ์–ด ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง, ์ˆœ์„œ ๋ณ€๊ฒฝ, ํ–‰ ์ถ”๊ฐ€ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹œ ์ปดํ“จํ„ฐ๋“ค์˜ ์†๋„๊ฐ€ ๋Š๋ ธ๊ธฐ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง์„ ์ตœ์ ํ™”ํ•˜๋Š”๋ฐ์— ์‹ ๊ฒฝ์ผ์Šต๋‹ˆ๋‹ค.

A web application that visualizes large-scale genetic data in a cell structure.

In addition to basic screen manipulation, it provides functions such as data filtering, reordering, and row addition.

Due to the slow speed of computers at the time, special attention was paid to optimizing the rendering process.

Project 2 Image 1 Project 2 Image 2 Project 2 Image 2

Epidemic Simulator

WebGL

์ „์—ผ๋ณ‘ ํ™•์‚ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋ธ์„ ์›น์œผ๋กœ ์‹œ๊ฐํ™”ํ•œ ํ† ์ด ์›น ํ”„๋กœ์ ํŠธ

3Blue1Brown์˜ Simulating an epidemic ์˜์ƒ์„ ๋ณด๊ณ  ๋งŒ๋“  ํ† ์ด ํ”„๋กœ์ ํŠธ

SIR ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ „์—ผ๋ณ‘์— ๊ด€๋ จ๋œ ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์ „์—ผ๋ณ‘ ํ™•์‚ฐ ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WebGL 2.0์ด ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ, ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ  ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜์ ์ธ ์ตœ์ ํ™”๋“ค์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

A toy web project visualizing an epidemic spread simulation model

A toy project created after watching 3Blue1Brown's Simulating an epidemic video

Based on the SIR model, you can simply simulate the process of epidemic spread by manipulating various variables related to epidemics.

WebGL 2.0 was used, and essential optimizations for simulating and rendering large amounts of data were included.

Project 2 Image 1

Skeletal Editor

ProcessingJS

Keyframe ๊ธฐ๋ฐ˜ Skeletal Animation์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ† ์ด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๋ Œ๋”๋ง์—๋Š” ProcessingJS๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ ๋‚ด๋ณด๋‚ด๊ธฐ, ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋“ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๋งŒ๋“  ์ฒซ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

A toy web application for creating keyframe-based skeletal animation

ProcessingJS was used for rendering, and features such as data export and import are available.

This is the first web application I created.

Project 2 Image 1 Project 2 Image 1

Olive/Nlive

Electron WebGL React Offscreen Canvas AudioWorklet QT Node FFMPEG

Premiere Pro ์Šคํƒ€์ผ์˜ ์˜์ƒ ํŽธ์ง‘ ํ”„๋กœ๊ทธ๋žจ

๊ฐœ์ธ ์ทจ๋ฏธ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•˜์˜€์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ž„ ํƒ€์ž„๋ผ์ธ ํŽธ์ง‘ / ์˜์ƒ ํšจ๊ณผ / ์˜์ƒ ์žฌ์ƒ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Olive๋Š” Electron ์„ ๊ธฐ๋ฐ˜์œผ๋กœ React / WebGL / OffscreenCanvas / AudioWorklet / FFEMPG ๋“ฑ
์ตœ์‹  ์›น ๊ธฐ์ˆ ๊ณผ C++ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ๋ฒ„์ „์ด๋ฉฐ,

Nlive๋Š” ๊ฐ™์€ ๋‚ด์šฉ์„ C++ Qt ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ๊ตฌํ˜„ํ•œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

Premiere Pro-style video editing program

Developed as a personal hobby project, it provides basic timeline editing / video effects / video playback functions.

Olive is a version implemented using Electron as a base, along with modern web technologies such as React / WebGL / OffscreenCanvas / AudioWorklet / FFMPEG, and C++ native modules.

Nlive is a version that reimplements the same content based on C++ Qt.

Project 2 Image 1

ThumbUp

HTML5 Canvas WebAssmebly Angular

NAVER 2020 HACKDAY์˜ ์ฃผ์ œ ์ค‘ ํ•˜๋‚˜์ธ ์ธ๋„ค์ผ ์ €์ž‘ ๋„๊ตฌ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ดํ‹€์— ๊ฑธ์ณ ์ œ์ž‘ํ•œ ํ† ์ด ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

Angular framework๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ, ์บ”๋ฒ„์Šค๋Š” ํฌ๊ธฐ ๋ณ€๊ฒฝ, ์ด๋™, ํ™•๋Œ€, ์ถ•์†Œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋„ํ˜•์€ ํฌ๊ธฐ ์กฐ์ ˆ, ํšŒ์ „์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ทธ๋ฆผ์€ ์ƒํ•˜์ขŒ์šฐ ๋ฐ˜์ „ ๊ธฐ๋Šฅ์ด, ํ…์ŠคํŠธ๋Š” ํฐํŠธ ๋ณ€๊ฒฝ ๋ฐ ์ƒ‰์ƒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋„ํ˜•(๋ ˆ์ด์–ด)๊ฐ„์˜ ์ˆœ์„œ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, Undo, Redo ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ํ•„ํ„ฐ๋ฅผ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ•„ํ„ฐ ์ ์šฉ์—๋Š” ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ์œ„ํ•ด WebAssembly๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

This is a toy project created over two days based on the requirements of a thumbnail creation toola, one of the themes of NAVER 2020 HACKDAY.

The Angular framework was used, and the canvas can be resized, moved, zoomed in, and zoomed out.

Shapes can be resized and rotated, images can be flipped horizontally and vertically, and text can have its font and color changed.

The order between each shape (layer) can be adjusted, and Undo and Redo functions are provided.

Three types of filters can be applied, and WebAssembly was used for filter application to ensure fast performance.

Project 2 Image 1 Project 2 Image 1 Project 2 Image 1 Project 2 Image 1

Figure Module

HTML5 Canvas Angular

PowerPoint์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฐจํŠธ, ํ…Œ์ด๋ธ”, ๋„ํ˜•๋“ฑ์„ ์›น์—์„œ ๊ตฌํ˜„ํ•œ ์›น ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

๊ฐ ์š”์†Œ๋“ค์€ ํฌ๊ธฐ ์กฐ์ ˆ / ํšŒ์ „๋“ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋”๋ง์—๋Š” HTML5 Canvas๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

AngularJS๊ฐ€ ์‚ฌ์šฉ๋˜์–ด ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

This is a web module that implements charts, tables, shapes, etc. that can be used in PowerPoint on the web.

Each element can be resized / rotated, etc. HTML5 Canvas was used for rendering.

AngularJS is used, allowing for two-way data binding.

Project 2 Image 1 Project 2 Image 1

Color Subtitler

HTML5 Canvas HTML5 Video

๋น„๋””์˜ค ์˜์ƒ์— ๋Œ€ํ•œ ์ƒ‰์ƒ ์ž๋ง‰ ๊ตฌ๊ฐ„์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

๊ฐ ๊ตฌ๊ฐ„๋งˆ๋‹ค ๋‹จ์ผ ์ƒ‰์ƒ ๋˜๋Š” ํŒจํ„ด ์ƒ‰์ƒ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ‰์ƒ ๊ตฌ๊ฐ„์€ ๊ทธ๋ฃนํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ทธ๋ฃนํ™”๋œ ๊ตฌ๊ฐ„์€ ํ”„๋ฆฌ์…‹์œผ๋กœ ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณต์‚ฌ, ๋ถ™์—ฌ๋„ฃ๊ธฐ, ์‹คํ–‰ ์ทจ์†Œ(Undo), ๋‹ค์‹œ ์‹คํ–‰(Redo)๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

This is a web application that allows editing of color subtitle sections for video content.

You can apply a single color or pattern color to each section. Color sections can be grouped, and grouped sections can be saved as presets for use.

It provides functions such as copy, paste, undo, and redo.

Project 2 Image 1 Project 2 Image 1 Project 2 Image 1 Project 2 Image 1

Subtitle Segmentator

HTML5 Canvas HTML5 Video

๋น„๋””์˜ค ์˜์ƒ์— ์ž…ํž ์ž๋ง‰ ๊ตฌ๊ฐ„์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

This is a web application that allows editing of subtitle sections to be applied to video content.

Project 2 Image 1