u/innolot

Image 1 — Turning a floorplan photo into a 3D house — my own Vulkan CAD engine
Image 2 — Turning a floorplan photo into a 3D house — my own Vulkan CAD engine
Image 3 — Turning a floorplan photo into a 3D house — my own Vulkan CAD engine
▲ 23 r/vulkan

Turning a floorplan photo into a 3D house — my own Vulkan CAD engine

Drop in a floorplan image and the house gets built.

The AI only reads the dimension numbers. Where the walls actually are is found by the engine, straight from the pixels. Reading numbers is what the model is good at; seeing which line is a wall is not.

The rules come from architecture. Dimensions are measured to wall centrelines, exterior and interior walls have different thicknesses, and where walls meet is where a room ends. A window isn't a missing wall — it's a hole in one.

The original drawing is laid underneath at the same scale, so you can see straight away whether it got it right.

A CAD engine I'm building from scratch in Vulkan and C++17. The model runs locally, 7B.

평면도 이미지를 넣으면 3D 모델링이 됩니다.

AI 는 치수 숫자만 읽습니다. 벽이 어디에 있는지는 엔진이 이미지에서 직접 찾습니다. 숫자를 읽는 건 AI 가 잘하고, 어디가 벽인지 보는 건 못하기 때문입니다.

도면을 읽는 규칙은 건축에서 그대로 가져왔습니다. 치수는 벽 중심을 재고, 외벽과 내벽은 두께가 다르며, 벽이 만나는 자리가 방의 경계입니다. 창은 벽이 없는 게 아니라 벽에 뚫린 것이고요.

만들어진 3D 모델 아래에 원본 도면을 같은 축척으로 깔아 두었습니다. 맞게 그렸는지 확인합니다.

Vulkan + C++17 로 제가 직접 만들고 있는 CAD 엔진입니다. 로컬에서 도는 7B 모델을 씁니다.

https://youtu.be/dCkcYsRAOTE?si=AeltSbmePtQh3AfY

u/innolot — 3 days ago
▲ 0 r/vulkan

Using a Local LLM to Generate a 3D Floor Plan in My Vulkan Engine

I connected a local AI model to my Vulkan CAD engine. The AI understands room sizes, layouts, doors, and windows from a natural-language description, then converts them into commands that generate the complete 3D floor plan. In this video, I create a layout with a central corridor and four rooms in a single request.

직접 개발 중인 Vulkan CAD 엔진에 로컬 AI를 연결했습니다. 방의 크기와 배치, 문과 창문의 위치를 한글로 설명하면 AI가 명령을 분석하고 엔진이 3D 평면도를 자동으로 생성합니다. 이번 영상에서는 중앙 복도와 방 4개가 있는 구조를 한 번에 만드는 과정을 보여드립니다.

https://youtu.be/OSFVRek89yU?si=lSHRApH2S\_QVPo2C

u/innolot — 12 days ago
▲ 1 r/vulkan

SiteScape LiDAR Scan → PLY Leveling & Real-World Measurement

My cad engine(Vulkan)

SiteScape로 실제 공간을 LiDAR 스캔하고 PLY 포인트클라우드로 저장했습니다.
PLY 데이터를 불러와 Level을 맞춘 뒤, 실제 공간의 거리를 직접 측정해 봅니다.

I scanned a real-world space with SiteScape and exported it as a PLY point cloud.
After loading the PLY data, I level the scan and measure real-world distances directly.

youtu.be
u/innolot — 14 days ago
▲ 26 r/vulkan

I Built a CAD Engine in Vulkan with Robot Joints

This is a CAD engine I built from scratch using Vulkan.
Create a few boxes, connect them in a parent-child hierarchy, and they instantly become joints.
The rotation axis has its own position and direction. Just like a door hinge is mounted on the edge instead of the center, the pivot point doesn’t always have to be in the middle of a part.
You can rotate each joint manually with a slider, or enable automatic oscillation to animate it.
A useful trick is to offset the phase of each joint slightly. If every joint moves at exactly the same time, it looks more like a spasm than a robot.
The engine can also load ROS robot description files, or URDF files, without requiring ROS itself.
Design your model in CAD, then animate and test it immediately in the same engine.
Everything happens in one workflow.

https://youtu.be/aJ7ip6bVilQ?si=O6fYulMOGqozgqKo

u/innolot — 18 days ago
▲ 4 r/VoxelGameDev+1 crossposts

Vulkan modeling collision

Wall collision is now in my Vulkan CAD engine.

Draw a polyline, extrude it into walls, then switch to character mode and walk inside. The walls you just built actually stop you.

The character is approximated as a capsule, pushed out along the wall normal by however deep it went in. That push-out is the sliding — head-on you stop, at an angle you slide. A normal pointing up more than 45 degrees is floor, otherwise wall. That single test is what makes stairs work.

Collision candidates come from a BVH: 140x faster on 50,000 triangles, and click-to-select got faster too.

The fox is long-bodied, so a vertical capsule lets its head poke through walls. When the body is elongated, the capsule lies down along it.

Not a physics engine — just a character controller, about 300 lines.

Design it in CAD. Walk through it. Same engine.

youtu.be
u/innolot — 19 days ago
▲ 41 r/vulkan

Generating a 2D Section in a Vulkan CAD Engine and Exporting It to AutoCAD as DXF

https://youtu.be/MIdugAqyuxE?si=r-BNE\_HzvsxI70ou

This video demonstrates extracting a 2D section from a 3D mesh in a custom Vulkan and C++ CAD engine.

The engine calculates triangle-plane intersections, builds the section contours, and exports them as a DXF file for verification in AutoCAD.

Vulkan과 C++로 개발 중인 CAD 엔진에서 3D 메시의 단면을 추출하고, 2D 도면으로 배치한 뒤 DXF로 내보내는 과정입니다.

삼각형과 절단 평면의 교차선을 계산해 단면 윤곽을 생성하고, 내보낸 DXF 파일을 AutoCAD에서 확인했습니다.

u/innolot — 26 days ago
▲ 11 r/vulkan

Vulkan Section

https://youtu.be/5wooBdVCSvc?si=uavdWwV8D7BGsNSm

한글

Vulkan으로 직접 만드는 CAD 엔진 — 실시간 단면(Section)

C++/Vulkan으로 밑바닥부터 만드는 CAD 엔진에 단면 기능을 넣었습니다. 평면 하나로 모델을 실시간으로 잘라 내부를 봅니다. 평면/슬라이스/상자 모드, 축·위치 슬라이더, 반대쪽 남기기 지원. 스샷은 glTF 기계 어셈블리를 Y축으로 자른 모습입니다.

English

Building a CAD engine from scratch in Vulkan — real-time Section view

Added a section (cutaway) feature to my C++/Vulkan CAD engine. Slice a model with a plane and see inside in real time. Plane/Slice/Box modes, axis + position slider, keep-opposite-side toggle. Screenshot: a glTF mechanical assembly cut along the Y axis.

#Vulkan #CAD #Cpp #GraphicsProgramming

u/innolot — 1 month ago
▲ 10 r/vulkan

Vulkan Android App

Vulkan ios android Dev. 😭
그리고 정점 편집이 가능한 기능도 같이 개발했습니다.
And we also developed a function that can edit the vertex.

https://youtu.be/JkN-8c7pQAU?si=VBzhy2nZDQBXgLpi

일단 안드로이드폰이 없어서 시뮬레이터로 확인
First of all, I don‘t have an Android phone, so I checked with the simulator.

u/innolot — 1 month ago
▲ 19 r/vulkan

vulkan boolian

3d 객체의 boolian 기능 구현 - 모델링 프로그램의 기능을 순차적으로 개발 중

Implementation of boolian function of 3d object - The function of the modeling program is being developed sequentially.

vulkan + manifold + gltf + obj + imgui

https://youtu.be/gL9ipWG_3Z8?si=KtIdwh8E7vlkoBZD

u/innolot — 2 months ago
▲ 4 r/vulkan

vulkan view and animation

https://youtu.be/NCYuw8lpJlQ?si=2ugVyku7Tp734QXD

뷰 분할과 애니메이션 보기(gltf)
- 3d 모델링 프로그램처럼 뷰 분할 구현
- gltf에 애니메이션이 있다면 스페이스키를 누를 시
재생되도록 구현

Split views and animation playback (glTF)
- Split viewports like a 3D modeling program
- If a glTF model contains animation, pressing the space key plays it

u/innolot — 2 months ago
▲ 6 r/vulkan

vulkan try to apply ios

더해봐야 하겠지만 vulkan이 ios도 적용할 수 있네요. 다음은 안드로이드로 해볼려고요
I need to test it more, but it turns out Vulkan can be applied to iOS as well. Next, I’m planning to try it on Android

https://youtu.be/WXFv1oauXYk?si=vnPBsFyqrt8WYyNu

u/innolot — 3 months ago
▲ 0 r/vulkan

Vulkan — now with Gizmo drag and AI natural language

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

u/innolot — 4 months ago
▲ 3 r/vulkan

llama와 vulkan backend로 빌드 후 나의 vulkan 프로젝트와 결합하여 프롬프트로 명령하면 수행되도록 개발
Build llama.cpp with Vulkan backend, then integrate it with my Vulkan project so that prompt-based commands can be executed.

llm이라서 그런지 영어 한국어 모두 가능하다
Since it’s an LLM, it seems both English and Korean are supported.

안타깝지만 한글 입력 문제로 프롬프트 창만 imgui를 안썼다
Unfortunately, I didn‘t use the prompt window imgui because of the Korean input problem.

https://youtu.be/VPvbqg8FmGE?si=zMM02OgsV8OG8qOo

u/innolot — 4 months ago