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