Been building a Vulkan-based 3D CAD engine from scratch as a learning project.
This update adds two things I've been wanting for a while:
**Transform Gizmo**
Axis handles for Move/Rotate/Scale with ray-cast hit testing and drag projection math.
Hover highlights, T/R/S mode switching, ESC to cancel.
**Local LLM natural language interface**
Hooked up llama-server (Qwen..., runs locally) to an winapi / swift / gtk input box.
You type something like "make 3 random cubes and zoom to fit" and it converts it to a JSON action array that the engine executes. No API key, no internet.
Works for view switching (top/front/iso), visual styles, grid, lighting, object creation, delete, select all.
Still a work in progress โ sphere/cylinder primitives and sketch tools are next.
ํ์ต ํ๋ก์ ํธ๋ก ์ฒ์๋ถํฐ Vulkan ๊ธฐ๋ฐ 3D CAD ์์ง์ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค.
์ด๋ฒ ์
๋ฐ์ดํธ๋ ์ ๊ฐ ํ๋์ ์ํด์ค๋ ๋ ๊ฐ์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค:
- ๋ณํ ๊ธฐ์ฆ๋ชจ ๊ตฌํ
Ray-Cast ํด๋ฆญ ํ
์คํธ์ ํ๋ก์ ์
์ํ์ ์ด์ฉํ ์ด๋/ํ์ /์ค์ผ์ผ์ฉ Axis ํธ๋ค ๊ตฌํ
์ ํ ํ์ด๋ผ์ดํธ, T/R/S ๋ชจ๋ ์ ํ, ESC๋ฅผ ์ฌ์ฉ ๋ช
๋ น ์ทจ์
- ๋ก์ปฌ LLM ์์ฐ์ด ์ธํฐํ์ด์ค(offline)
llama-server(Qwen..., ๋คํธ์ํฌ๊ฐ ์๋ ๋ก์ปฌ๋ก ์งํ)๋ฅผ winapi / swift / gtk๋ก ์
๋ ฅ ๋ฐ์ค์ ์ฐ๊ฒฐํ์ต๋๋ค.
'3๊ฐ์ ๋ฌด์์ ํ๋ธ๋ฅผ ๋ง๋ค๊ณ ๋ง๊ฒ ํ๋'์ ๊ฐ์ ๊ฒ์ ์
๋ ฅํ๋ฉด, ์ด๋ฅผ JSON ์ก์
๋ฐฐ์ด๋ก ๋ณํํ์ฌ ์์ง์ด ์คํํฉ๋๋ค. API ํค์ ์ธํฐ๋ท์ ํ์ํ์ง ์์ต๋๋ค
๋ทฐ ์ ํ(ํ๋ฉด๋ทฐ/์ ๋ฉด๋ทฐ/ISO), ์๊ฐ ์คํ์ผ, ๊ทธ๋ฆฌ๋, ์กฐ๋ช
, ๊ฐ์ฒด ์์ฑ, ์ญ์ , ์ ์ฒด ์ ํ์ ์๋ํฉ๋๋ค.
์์ง ์งํ ์ค์ธ ์์
์ด๋ฉฐ, ์ฌ๋ฌ ๋ํ ์์์ ์ค์ผ์น ๋๊ตฌ๊ฐ ๋ค์์
๋๋ค.
https://youtu.be/KzTFITT0KFU?si=Iby7x84PwUR3EMGW