π‘Projects
κ°μΈ νλ‘μ νΈ νλͺ©μ λλ€.
2022
Anim v0.1.0
πΊ Anim
νλͺ© | μ€λͺ |
---|---|
μμ½ | βκ²μ μ λλ©μ΄μ
μ μμ λμμ£Όλ μ λλ©μ΄μ
ν΄β βμ¬λμ΄ λ±μ₯νλ μμμ μ λλ©μ΄μ λ°μ΄ν°λ‘ λ³νν μ μλ μ λλ©μ΄μ ν΄β |
μμ€ | source |
κΈ°κ° | 2022.03.10 ~ 2022.07.04 (GUI, FK, video to animation ꡬν) 2022.08.04 ~ 2022.09.08 (μ λλ©μ΄μ νΈμ§ κ΄λ ¨ ꡬν) 2022.10.23 ~ 2022.10.25 (SMPL to Mixamo 리νκ²ν° ꡬν) |
μΈμ | 1μΈ κ°λ° |
κΈ°λ₯ | μ λλ©μ΄μ
νμΌ μμ±(import, export) μ λλ©μ΄μ μλ μμ± μ λλ©μ΄μ μμ ν¬λ§· λ³ν μ νμ 리νκ²ν |
κΈ°μ , νλ μμν¬, λΌμ΄λΈλ¬λ¦¬, API | μ¬μ© μ΄μ |
---|---|
C++ | μ±λ₯, μ λ’°κ°λ₯ν λΌμ΄λΈλ¬λ¦¬ |
OpenGL | λ€μν νλ«νΌ μ§μ |
Python | μΈκ³΅μ§λ₯ νλ μμν¬, νμ₯μ±, λ€μν νλλ«νΌ μ§μ, μΈν°νλ¦¬ν° |
ImGUI | μΈλΆμ’ μμ±μ΄ ν¬μ§ μμ, λ€μν λ°±μλ μ§μ |
Assimp | λ€μν ν¬λ§· μ§μ |
Mediapipe | μ€νμμ€ HPE(Human Pose Estimation) μ€ κ°λ²Όμ°λ©΄μ μ±λ₯μ΄ μ’μ |
Animation tool | Video to Animation (only mixamorig character) |
---|---|
retarget(before) | retarget(after) |
---|---|
- 리뷰
- λ€μν νκ²½μ μ§μνκΈ° μν΄ OpenGL, C++, Python μ μ¬μ©νμμλ λΆκ΅¬νκ³ λͺλͺ νκ²½μμ μ λλ‘ λμνμ§ μμκ³ , μμΈ νμ
μ μ νμ§ λͺ»νμμ
- κ°λ° μ΄κΈ°λ¨κ³μμ λ‘κ·ΈκΈ°λ₯μ νμ€ν μ§μν΄μΌν¨μ λλ
- κ΅¬μ‘°κ° μ»€μ§λ©΄μ μ΄κΈ°μ μ€κ³νλ κ°μ²΄λ₯Ό λΉλ²νκ² μμ νμμ
- νΉν, entityμ μ μμ λν΄μ κ·Έλ¬μ. μ²μμ entityμμ νΉμ ν λ‘μ§μ μννλ ν¨μλ₯Ό λμμ. νμ μ»΄ν¬λνΈ κΈ°λ°μΌλ‘ ꡬννμκ³ , νΉμ ν λ‘μ§μ μ»΄ν¬λνΈμμ μ€ννλ λ°©λ²μ μ¬μ©ν¨
- 무μμ κ°λ°νκΈ° 보λ€λ νμν κΈ°λ₯λ€μ μ μν ν ν΄λμ€λ₯Ό μ€κ³ν΄μΌν¨μ λλ
- CI/CD (Github Action) μ μ¬μ©ν΄λ³΄κ³ μ΄λ ν νλ«νΌμμ βλΉλκ° μ λλ‘ λλμ§β λ₯Ό νμΈν μ μμ΄ νΈλ¦¬νμμ μμΌλ‘λ μ΄λ₯Ό μ¬μ©νλ©΄ μ’μ κ² κ°μ
- λ‘컬λΌμ΄μ§μ μ€μμ±μ μκ²λ¨. μ΄κΈ°μλ λ‘컬λΌμ΄μ§μ μ κ²½μ°μ§μμκ³ νμ μ΄λ₯Ό μ§μνλ €κ³ νλ μμ΄λ λ¬Έμμ΄λ‘ μ λΆ μμ ν΄μΌνλ μΌμ΄ νμνμ
- μ λΆ λ³κ²½ν기보λ€λ μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ utf-8 μ»΄νμΌ μ΅μ μ μ§μνλ MSVCλ‘ λ³κ²½ (μ΄μ μλ gccλ‘ κ°λ°νμ¬ μλμ°, λ§₯μ νκ²½μ λ§μΆ€, μλμ°μμ gccμ utf-8 μ€μ μ΄ λ¨Ήνμ§ μμμ)
- λ€μν νκ²½μ μ§μνκΈ° μν΄ OpenGL, C++, Python μ μ¬μ©νμμλ λΆκ΅¬νκ³ λͺλͺ νκ²½μμ μ λλ‘ λμνμ§ μμκ³ , μμΈ νμ
μ μ νμ§ λͺ»νμμ
- μ΄λ €μ λ μ
- λͺ¨λΈ μ‘°μ => μ λλ©μ΄μ λ°μ΄ν° μμ
- λ°μ΄ν° μμ μ€ν μ·¨μ κΈ°λ₯
- μμμμ μ λλ©μ΄μ
λ°μ΄ν°λ‘ 맀ν
- IK μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ μ’νλ₯Ό λ°μΈλ©ν¬μ¦μ μλμ μΈ νμ κ°μΌλ‘ λ³ν
- μ λλ©μ΄μ
λ°μ΄ν° μν¬νΈ μ΅μ€ν¬νΈ
- Assimp μ΅μ€ν¬νΈ κΈ°λ₯μ μ¬μ©νλλ° λ¬Έμ κ° μκΉ => Assimp μ½λλ₯Ό μμ νμ¬ μ¬μ©
- Assimp μ΅μ€ν¬νΈ κΈ°λ₯μ μ¬μ©νλλ° λ¬Έμ κ° μκΉ => Blenderμ Anim μ΅μ€ν¬νΈ κ²°κ³Όλ¬Όμ λΉκ΅νμ¬ μ λλ©μ΄μ λ°μ΄ν° νΉμ± νμ , κ²μμ μ¬μ©νλ €λ©΄ μ λλ©μ΄μ λ°μ΄ν°κ° μ°μμ μ΄μ΄μΌν¨μ μκ²λ¨
- C++μμ Python μΈκ³΅μ§λ₯ νλ μμν¬μΈ Mediapipeλ₯Ό μ€ν
- μ€λΈμ νΈ νΌνΉ
- λͺ¨λΈμ μ€λΈμ νΈλ₯Ό νΌνΉν λ λͺ¨λΈκ³Ό λΌλ₯Ό ꡬλΆνκΈ° μν΄ ν μ€μ² RGB λΉνΈμ βμ€λΈμ νΈ id + λΌ idβ λ‘ μ€μ νμ¬ κ΅¬νν¨
- μ΄λ₯Όν΅ν΄ λΌκ° λ λλ§λλ μλλ λΌλ₯Ό νΌνΉν μ μκ² κ΅¬νν¨
procedural 3d terrain
β°οΈ procedural 3d terrain
- νλ‘μ νΈ κΈ°κ°: 2μ£Ό
- κΈ°μ :
OpenGL
,C++
,Python
,AI Framework
- μ€λͺ
- Procedural3DTerrain μ λ³΄κ³ μ΄λ₯Ό μ¬μ©ν μ μλ νλ‘κ·Έλ¨μ μ μν¨.
- 쑰건μ λ°λΌ μνλ μ§νμ μμ±ν μ μκ² κ³ μΉ¨ (GANμμ CGANμΌλ‘ μ½λλ₯Ό κ³ μΉ¨, μνλ μ§ν )
- μμ€: Python source, C++ source
gui | CGAN result |
---|---|
2021
Hand
π€ Hand
- νλ‘μ νΈ κΈ°κ°: 2μ£Όλμ 2κ°μ νλ‘μ νΈλ₯Ό μννμμ΅λλ€.
1. π«³ Virtual Hand
- κΈ°μ :
vulkan
,C++
,Python
- μ€λͺ : μ¬λμ μ λμμ λ°λΌ μμ§μ΄λ κ°μμ μμ λ λλ§
- μμ€: source
- physics: box2d
- hand estimation: mediapipe
2. π Hand Pinball
- κΈ°μ :
Python
- μ€λͺ : μκ°λ½μ μμ§μ¬ νλ³Όμ νλ μ΄
- μμ€: source
genetic painting
𧬠genetic painting
- OpenGL κ³Ό Vulkan κ·Έλν½μ€ APIμ μ°¨μ΄μ μ νμΈνκΈ° μν νλ‘μ νΈ
- OpenGLκ³Όλ λ€λ₯Έ Vulkanμ λΉλκΈ° νΉμ§μ μ¬μ©νμ¬ λ λΉ λ₯΄κ² λ λλ§λλ κ²μ νμΈν μ μμμ.
- μ€λͺ : μ μ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ μ¬λμ΄ κ·Έλ¦Όμ 그리λ κ² μ²λΌ 보μ΄κ² νλ νλ‘κ·Έλ¨
1. π¨ Vulkan Painting
- κΈ°μ :
vulkan
,C++
- μμ€: vk-source
220 x 220 1min ~ 3min | 512 x 512 3min ~ 10min |
---|---|
2. πΌοΈ OpenGL Painting
- κΈ°μ :
OpenGL
,C++
- μμ€: gl-source
π‘ κ·Έ μΈ Projects
YesTrip: μ¬ν κ³νμ¬μ΄νΈ(2023)
π YesTrip: μ¬ν κ³ν μ¬μ΄νΈ
- μμ° μμ
- μΈμ: 2μΈ
- μν : μ§λ κ΄λ ¨ νλ‘ νΈ, λ°±μ€λ
- κΈ°κ°: 7μΌ (2023.05)
- μ€λͺ : μ¬ν κ³νμ μΈμΈ μ μκ³ , μ§λμμ κ΅λ΄ κ΄κ΄μ§ μ 보λ₯Ό μ»μ μ μλ μΉ νμ΄μ§
- κ΄λ ¨ ν€μλ: js, Vue.js, leaflet, osrm ,SPA , MyBatis, Spring boot
μ΄λ―Έμ§ λ°μ΄ν°λ₯Ό ν΅ν μ΄λ₯μ°¨ μ¬κ³ λ€λ°μ§ μμΈ‘(2022)
ποΈ μ΄λ―Έμ§ λ°μ΄ν°λ₯Ό ν΅ν μ΄λ₯μ°¨ μ¬κ³ λ€λ°μ§ μμΈ‘(2022)
- μμ€
- μΈμ: 2μΈ (κΈ°ν, νλ‘κ·Έλλ°)
- μν : νλ‘κ·Έλλ°μ λ΄λΉν¨
- μ€λͺ : μ΄λ₯μ°¨ μ¬κ³ κ° μμ£Ό μΌμ΄λλ λλ‘ μ΄λ―Έμ§ λ°μ΄ν°λ₯Ό νμ΅μμΌ μ΄λ₯μ°¨κ° μ§λκ°λ©΄ μνν λλ‘λ₯Ό μλ €μ£Όλ μΈκ³΅μ§λ₯ λͺ¨λΈμ κ°λ°
- κΈ°λν¨κ³Ό
- μ΄λ₯μ°¨ μ¬κ³ κ° μμ£Ό μΌμ΄λλ λλ‘λ₯Ό μ°Ύμ κ²½κ³ ν λ±μ μ€μΉνμ¬ μνμ λ°©μ§ν μ μμ
- λλ‘ κ°νΈ λλ λλ‘ κ±΄μ€ κ³ν μ λ μμ ν λλ‘λ₯Ό μ€κ³ν μ μμ
- νκ³: νλμ¨μ΄ μ±λ₯ λ¬Έμ λ‘ λ°μ΄ν° μκ° μ μμ
- κ΄λ ¨ ν€μλ: Python, QGIS, GAN
Avoid Shoot Bounce(2019)
β½ Avoid Shoot Bounce
- λ°λͺ¨ μμ
- μΈμ: 1μΈ
- κΈ°κ°: 2019.04.02 ~ 2019.04.07
- μ€λͺ : κ΅°λκ°κΈ°μ 5μΌλμ κ°λ°ν κ°λ¨ν μν κ²μμ λλ€.
- ν€μλ: μ λν°, μΆ©λ, μ€λΈμ νΈν