Skip to content
@Roomfit-AI

RoomFit

[2026 AI·SW중심대학 디지털 경진대회: SW부문] 실제 공간에서 시작하는 3D 인테리어 AI Agent

RoomFit

내 공간을 이해하고, 내 생활에 맞는 인테리어를 제안하는 AI 공간 설계 서비스

공간 스캔부터 가구 추천, 3D 편집, 자연어 피드백까지 하나의 흐름으로 연결합니다.

Web Service Backend Swagger


React Three.js Spring Boot Swift PostgreSQL


🏠 RoomFit 소개

RoomFit은 원룸과 소형 주거 공간에서 사용자의 생활 방식과 취향을 반영해
가구 구성과 배치를 추천하고, 결과를 3D 공간에서 직접 확인·수정할 수 있도록 만든 AI 기반 인테리어 서비스입니다.

사용자는 다음 세 가지 방식으로 공간을 준비할 수 있습니다.

  • iPhone의 RoomPlan으로 실제 공간 스캔
  • 제공되는 샘플 공간 선택
  • 웹에서 방 크기와 구조를 입력해 직접 생성

이후 생활 목적, 디자인 취향, 색상, 필요한 가구를 선택하면 RoomFit이 배치안을 생성합니다.
추천 결과는 3D 에디터에서 확인할 수 있으며, 가구를 직접 조작하거나 자연어로 수정을 요청할 수 있습니다.

LLM은 사용자의 의도를 해석하고, 실제 배치 실행과 안전성 검증은 서버의 결정론적 로직이 담당합니다.


✨ 주요 사용자 흐름

공간 스캔 또는 방 생성
        ↓
생활 목적·디자인 취향 선택
        ↓
필요한 가구와 참고 이미지 선택
        ↓
가구 구성 및 초기 배치 추천
        ↓
3D 에디터에서 직접 수정
        ↓
자연어 피드백으로 배치 변경
        ↓
충돌·경계·동선 검증
        ↓
최종 인테리어 확정 및 저장

🚀 현재 구현된 기능

1. 공간 생성 및 연동

  • Apple RoomPlan 기반 실내 공간 촬영
  • 스캔 결과 미리보기
  • RoomPlan 데이터를 RoomFit JSON 형식으로 변환
  • 촬영한 공간의 Backend 업로드
  • 샘플 방 불러오기
  • 웹에서 방 크기를 입력해 직접 생성
  • App에서 업로드한 방을 Web의 Rooms 화면과 연결
  • 사용자별 Room 목록 조회 및 선택

2. 사용자 취향 입력

  • 생활 목적 선택
  • 인테리어 스타일 선택
  • 선호 색상 팔레트 선택
  • 스타일 참고 이미지 선택
  • 필요한 가구 선택 및 관리
  • 선택 정보를 기반으로 추천 Context 생성

3. 3D 인테리어 시뮬레이터

  • 벽, 바닥, 문, 창문을 포함한 방 구조 렌더링
  • React Three Fiber·Three.js 기반 3D 뷰어
  • 침대, 책상, 의자, 수납장, 소파, 책장 등 가구 렌더링
  • 가구 선택 및 이동
  • 가구 회전
  • 가구 추가 및 삭제
  • 가구 제품·디자인 교체
  • 데스크톱 및 모바일 반응형 UI
  • 추천 결과 확인 및 최종 확정

4. AI 인테리어 추천 및 자연어 피드백

  • 사용자 Context와 공간 구조를 이용한 가구 추천
  • 가구 크기와 공간 제약을 고려한 초기 배치
  • 자연어 피드백을 구조화된 작업 계획으로 변환
  • 가구 이동·추가·삭제·교체 요청 처리
  • LLM 호출 실패 시 Rule-based 해석기로 fallback
  • 대상이 모호한 요청에 대한 clarification 응답
  • 여러 작업이 포함된 복합 요청 처리
  • 수정 결과를 새로운 Layout으로 저장

5. 배치 안전성 검증

  • 가구 간 충돌 검사
  • 방 경계 이탈 검사
  • 문 열림 영역 검사
  • 창문 주변 여유 공간 검사
  • 사용자 이동 동선 검사
  • 검증 결과와 점수 제공
  • 안전하지 않은 작업의 실패·경고·rollback 처리

🧠 RoomFit의 AI 설계 방식

RoomFit은 LLM이 최종 좌표를 직접 결정하는 구조를 사용하지 않습니다.

사용자 자연어 피드백
        ↓
LLM 의도 해석
        ↓
구조화된 작업 Plan
        ↓
대상·요청 의미 검증
        ↓
Backend 결정론적 실행
        ↓
충돌·경계·문·창문·동선 검증
        ↓
적용 / 추가 질문 / 실패 / 전체 rollback

이 구조를 선택한 이유

  • 같은 요청에 대한 실행 결과를 추적하기 쉽습니다.
  • 존재하지 않는 가구나 임의 좌표 생성을 방지할 수 있습니다.
  • 충돌과 경계 이탈을 서버에서 일관되게 검증할 수 있습니다.
  • LLM 오류가 발생해도 Rule-based fallback을 사용할 수 있습니다.
  • 모호한 요청은 임의 실행 대신 사용자에게 다시 물을 수 있습니다.

🗂️ Repository

Repository 역할 현재 구현 범위
RoomFit-Web 사용자 Web 서비스와 3D 에디터 Rooms 관리, 취향 입력, 참고 이미지, 가구 선택, 추천 결과, 3D 편집, 자연어 피드백, 최종 확정
RoomFit-Backend 서비스 핵심 API와 AI·배치 로직 Room 저장, Context 생성, 가구 추천, Layout 저장, LLM 피드백, 규칙 기반 실행, 검증, Swagger
RoomFit-App 실제 공간 스캔용 iOS 앱 RoomPlan 촬영, 스캔 결과 미리보기, JSON 변환, 서버 업로드, Web 연동

🧩 Repository별 구현 현황

🌐 RoomFit-Web

운영 배포: roomfit-web-tau.vercel.app

현재 main에는 다음 사용자 흐름이 구성되어 있습니다.

Home
→ Rooms
→ Manage Furniture
→ Preference
→ Reference Image
→ Add Furniture
→ Recommendation / 3D Editor
→ Layout Confirm

구현된 영역:

  • Sample Room, App 업로드 Room, Web 생성 Room 관리
  • Room 선택 및 삭제
  • 생활 목적·스타일·색상 입력
  • 스타일 참고 이미지 선택
  • 가구 추가·제거
  • RoomViewer 기반 3D 렌더링
  • 벽·바닥·문·창문 렌더링
  • 가구별 3D 컴포넌트와 모델 렌더링
  • Backend Layout 추천·검증·피드백 API 연결
  • 자연어 Feedback 결과 표시
  • Layout 확정 및 Rooms 재조회
  • Vitest 기반 테스트, ESLint, TypeScript Build 검증

개선 중인 영역:

  • Rooms 통합 로딩·선택 UI 안정화
  • 모호한 가구 대상의 후보 선택 UI
  • selectedFurnitureId 기반 피드백 재요청
  • Feedback 상태와 접근성 개선
  • 대형 3D 번들의 로딩 최적화

⚙️ RoomFit-Backend

운영 배포: roomfit-backend.onrender.com
Swagger: swagger-ui/index.html

구현된 핵심 API:

Method Endpoint 역할
POST /api/rooms/upload RoomPlan 공간 업로드
GET /api/rooms/{roomId} Room 상세 조회
GET /api/rooms/samples Sample Room 조회
GET /api/rooms/uploads/recent 업로드 Room 목록 조회
POST /api/agent/context 사용자 취향 Context 생성
POST /api/layouts/recommend 가구 구성·배치 추천
POST /api/layouts/validate Layout 검증
PUT /api/layouts/{layoutId} Layout 수정·저장
POST /api/layouts/feedback 자연어 피드백 적용
POST /api/layouts/{layoutId}/confirm 최종 Layout 확정

구현된 영역:

  • Spring Boot 기반 REST API
  • PostgreSQL·Spring Data JPA 기반 Room 및 Layout 영속화
  • RoomPlan 구조 정규화 및 Import Warning 관리
  • 사용자 Context 생성
  • 제품 정보와 방 구조를 이용한 추천
  • Rule-based 초기 배치
  • LLM 기반 Feedback 의도 해석
  • LLM 실패 시 Rule-based fallback
  • 이동·추가·삭제·교체 등 결정론적 작업 실행
  • 복합 작업과 rollback
  • 충돌·경계·문·창문·동선 검증
  • 점수와 경고 응답
  • Docker·Render 배포
  • Gradle 기반 테스트 및 Build

개선 중인 영역:

  • 중복 타입 가구 대상의 모호성 검증 강화
  • 회전 자연어 표현 지원 확대
  • 크기·소재·디자인 교체 의도 정규화
  • Target ambiguity와 Product ambiguity 분리
  • 실제 RoomPlan 업로드 진단 강화
  • Sample 데이터의 안전한 idempotent 갱신

초기 추천 배치에 LLM을 결합하는 Hybrid Placement는 아직 베타 단계이며, 안정성 강화 중입니다.


📱 RoomFit-App

RoomFit-App은 iPhone의 공간 센서를 이용해 실제 방 구조를 Web 서비스로 전달하는 역할을 담당합니다.

구현된 영역:

  • SwiftUI 기반 앱 화면
  • Apple RoomPlan RoomCaptureView 연동
  • 실시간 공간 촬영
  • 촬영 시작·종료 및 결과 처리
  • 스캔한 방의 3D 미리보기
  • 벽·문·창문·가구 데이터 변환
  • 좌표계·회전·크기 정규화
  • RoomFit JSON Export
  • Backend /api/rooms/upload 업로드
  • 업로드 성공·실패 응답 처리
  • 서버에서 반환한 Room ID 저장
  • Web에서 업로드 Room을 이어서 사용할 수 있는 연동 흐름
  • Sample Room 업로드

개선 중인 영역:

  • 실촬영 Room의 업로드·재조회 안정성 진단
  • 큰 Thumbnail 및 동적 Geometry 처리 검증
  • 실제 기기 기반 End-to-End 회귀 테스트
  • 사용자별 App–Web 연결 안정화

🏗️ 서비스 아키텍처

┌──────────────────────────┐
│      RoomFit iOS App     │
│  SwiftUI · RoomPlan      │
│  실제 공간 촬영·업로드   │
└────────────┬─────────────┘
             │ RoomFit JSON
             ▼
┌──────────────────────────┐
│     RoomFit Backend      │
│ Spring Boot · PostgreSQL │
│ Recommendation · LLM    │
│ Rule Engine · Validation │
└────────────┬─────────────┘
             │ REST API
             ▼
┌──────────────────────────┐
│       RoomFit Web        │
│ React · TypeScript       │
│ React Three Fiber        │
│ 3D Editor · Feedback UI  │
└──────────────────────────┘

🛠️ Tech Stack

Web

  • React
  • TypeScript
  • Vite
  • React Three Fiber
  • Three.js
  • React Router
  • Vitest
  • ESLint
  • Vercel

Backend

  • Java 21
  • Spring Boot
  • Spring Data JPA
  • PostgreSQL
  • Gradle
  • Swagger / OpenAPI
  • Docker
  • OpenAI-compatible Chat Completions API
  • Render

iOS

  • Swift
  • SwiftUI
  • Apple RoomPlan
  • RealityKit / 3D Preview
  • URLSession
  • Xcode

📊 현재 서비스 상태

영역 상태
Web 전체 사용자 흐름 🟢 운영 배포
Sample·Web 생성 Room 🟢 사용 가능
App Sample 업로드 연동 🟢 사용 가능
실제 공간 RoomPlan 촬영 🟢 구현 완료
실촬영 Room의 Web 재조회 🟡 안정성 개선 중
Rule-based 초기 추천 배치 🟢 운영 중
LLM 자연어 Feedback 🟡 Beta · 안전성 강화 중
Layout 검증·점수 🟢 운영 중
PostgreSQL 영속화 🟢 운영 중
LLM Hybrid 초기 배치 🟡 Beta · 안전성 강화 중

🧪 품질 검증

RoomFit은 기능 구현뿐 아니라 안전한 AI 동작과 회귀 방지를 중요하게 다룹니다.

  • Web Unit·Component Test
  • Backend Unit·Integration Test
  • TypeScript Type Check
  • ESLint
  • Gradle Test·Build
  • API Smoke Test
  • Preview Smoke Test
  • Production End-to-End QA
  • LLM Feedback 반복·모호성 테스트
  • Room 경계·충돌·동선 검증
  • 실제 기기 RoomPlan 테스트

🔐 개발 원칙

1. AI보다 안전한 실행을 우선합니다

사용자가 특정하지 않은 가구를 임의로 변경하지 않습니다.
모호한 요청은 clarification으로 전환하고, 안전하지 않은 복합 작업은 전체 rollback합니다.

2. LLM은 해석하고, 서버가 실행합니다

LLM의 응답을 그대로 적용하지 않습니다.
Backend가 실제 대상, 허용 작업, 제품 후보, 좌표, 충돌 여부를 다시 검증합니다.

3. 실험 기능은 Feature Flag로 분리합니다

검증되지 않은 AI 초기 배치는 운영 기능과 분리하고 기본적으로 비활성화합니다.

4. 증거를 기반으로 문제를 해결합니다

재현 절차, HTTP 응답, 로그, DB 상태, 테스트 결과를 확인한 뒤 수정합니다.

5. 작업 단위를 분리합니다

Web, Backend, App, 운영 진단, AI 실험을 각각 별도의 Branch와 Pull Request로 관리합니다.


🌱 Roadmap

  • 자연어 회전·이동·교체 표현 확대
  • 모호한 요청을 위한 상호작용형 후보 선택
  • 실제 촬영 Room 업로드 안정화
  • 가구 디자인 Variant 확대
  • 추천 근거와 설명 제공
  • Hybrid AI Placement 실험 및 평가
  • 실제 제품 Catalog 연동
  • 사용자 인증 및 Room 공유
  • 3D 성능과 모바일 경험 최적화

▶️ Local Development

각 저장소의 세부 실행 방법은 Repository 내부 문서를 확인해주세요.

# Web
cd RoomFit-Web
npm install
npm run dev

# Backend
cd RoomFit-Backend
./gradlew bootRun

iOS App은 Xcode에서 RoomFit.xcodeproj를 열고, RoomPlan을 지원하는 실제 기기에서 실행합니다.


🤝 Contribution Workflow

최신 기준 Branch 확인
        ↓
작업별 Branch 생성
        ↓
코드와 회귀 테스트 작성
        ↓
Draft Pull Request
        ↓
자동 테스트·Preview Smoke
        ↓
Review 및 수정
        ↓
승인 후 Merge·Deploy
        ↓
Production Smoke Test

Branch prefix:

feat/
fix/
test/
chore/
experiment/

API Key, DB 접속 정보, Client ID, 실제 방 전체 JSON, Base64 Thumbnail과 같은 민감 정보는 Repository에 커밋하지 않습니다.


공간을 스캔하고, 생활을 이해하고, 더 나은 배치를 완성합니다.

RoomFit

AI가 제안하고, 사용자가 결정하는 3D 인테리어 경험

Popular repositories Loading

  1. RoomFit-Web RoomFit-Web Public

    TypeScript

  2. RoomFit-Backend RoomFit-Backend Public

    Java

  3. RoomFit-App RoomFit-App Public

    swift

    Swift

  4. .github .github Public

Repositories

Showing 4 of 4 repositories

Top languages

Loading…

Most used topics

Loading…