Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Cubestow — Load wisely. Ship safely. 컨테이너 적재 3D 시뮬레이터
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
제품 규격, 중량, 수량과 적재 제약을 입력하면 컨테이너별 배치·적재 순서·고정재 위치를 계산하고 3D로 보여주는 브라우저 기반 컨테이너 로딩 시뮬레이터입니다. • 현재 단계: Vercel 공개 베타 · 버전 1.1.111 (버전은 package.json의 semver로 관리하고 화면 하단에 같은 값을 표시한다. LoadWise 시절의 4.0.0까지는 이전 제품 버전이며, Cubestow로 이름을 바꾸면서 1.x로 다시 시작했다.) • 서비스: https://cubestow.onharu.app/ (이전 주소 https://cubestow.vercel.app/ 도 같은 사이트로 계속 열린다) • 저장소: https://github.com/cowpigpapa/cubestow • 제품 요구사항: LOADING-SIMULATOR-PRD.md • 상단 알고리즘 정책 팝업 및 원문: ALGORITHM-POLICY.mdREADME 전문 보기 ↗
____ _ _
/ ___| _| |__ ___ ___| |_ _____ __
| | | | | | '_ \ / _ \/ __| __/ _ \ \ /\ / /
| |__| |_| | |_) | __/\__ \ || (_) \ V V /
\____\__,_|_.__/ \___||___/\__\___/ \_/\_/
Cubestow — Load wisely. Ship safely.
이전 이름: LoadWise
제품 규격, 중량, 수량과 적재 제약을 입력하면 컨테이너별 배치·적재 순서·고정재 위치를 계산하고 3D로 보여주는 브라우저 기반 컨테이너 로딩 시뮬레이터입니다.
알고리즘 정책 팝업 및 원문: ALGORITHM-POLICY.mdnpm run samples:capture로 캡처와 manifest를 다시 만든다(tools/capture-sample-results.mjs)첫 저장에서 이름을 확인하고, 이후 저장은 확인 후 현재 프로젝트를 갱신합니다. 신규 저장은 현재 작업을 다른 이름의 새 프로젝트로 보존합니다. Excel/CSV 파일명이나 처음 등록한 제품명이 저장 이름으로 자동 제안되며, 저장 목록에서 기존 프로젝트를 불러오거나 삭제할 수 있습니다. 저장 프로젝트를 불러오면 저장된 제품과 컨테이너 조건으로 시뮬레이션이 즉시 실행됩니다.
localStorage에 저장[email protected]로그인과 로그아웃으로 전환클라우드 저장 위치를 상단에 표시새 프로젝트는 제품·설정·시뮬레이션 결과를 초기 상태로 되돌림로컬 저장은 다른 브라우저나 기기로 동기화되지 않으며 같은 브라우저 프로필을 사용하는 사람과 분리되지 않습니다. 개인별 보안과 여러 기기 연동이 필요하면 로그인해야 합니다. 클라우드 프로젝트는 PostgreSQL RLS 정책으로 로그인 사용자별 접근을 제한합니다.
최초 관리자는 데이터베이스 시드로 등록합니다. 관리자는 로그인 사용자별 현재 저장 프로젝트 수, 완료된 시뮬레이션 누계, 최초·최근 접속과 접속 횟수를 확인하고 다른 이메일에 관리자 권한을 부여할 수 있습니다. 비로그인 방문자는 이메일을 수집하지 않고 기존 오늘·누적 방문 수에만 포함됩니다.
| 항목 | 설명 |
|---|---|
| 제품명·제품군 | 제품 식별 정보 |
| 제품 형상 | 박스형 또는 원통형 |
| 길이·너비·높이 | mm 단위 외형 치수 |
| 개당 중량 | kg 단위 중량 |
| 수량 | 동일 규격 제품 수량 |
| 눕힘 허용 | 높이 축을 바꾸는 회전 허용 여부, 기본값은 미선택 |
| 상부 적재 금지 | 해당 제품 위에 다른 화물을 놓지 않음 |
바닥면에서 길이와 너비를 바꾸는 회전은 항상 평가합니다. 눕힘 허용은 제품을 옆으로 눕혀 높이 축까지 바꿔도 되는지를 뜻합니다.
결과는 안전 수준, 배치 방식, 운송 경로, 고정재 네 가지 선택으로 정합니다. 안전 수준은 반드시 지킬 규칙, 배치 방식은 미배치·대수가 같은 결과 중 무엇을 고를지, 운송 경로는 견뎌야 할 가속도, 고정재는 쓸 수 있는 고정 방법입니다. 배치 방식을 바꿔도 컨테이너가 늘어나지 않습니다.
| 수준 | 상부 지지율 | 추가 조건 |
|---|---|---|
| 적재량 우선 | 바닥면 70% 이상 | 충돌·중량·상부하중·상부 적재 금지 같은 물리 조건만 지킴 |
| 기본 (권장) | 바닥면 100% | 가느다란 화물 위 적재 금지(높이 ÷ 바닥 최소 치수 1.15 이하, 같은 규격 원통 위 원통은 1.6 이하), 원통은 바닥이나 같은 규격 원통 위에만, 높은 적층 전도 방지 |
| CTU 기준 적용 | 바닥면 100% | 기본 + 모든 화물의 안쪽·좌·우를 화물이나 고정재로 막음 + 다른 크기 화물 위 얹힘 금지. 래싱을 끄면 CTU 전도 기준을 모든 화물에 적용 |
모든 수준에서 중심 지지, 상부 적재 금지, 상부 허용하중, 누적 높이가 바닥 최소 치수의 1.5배를 넘을 때 2방향 측면 지지를 요구하고, 첫 화물은 예외 없이 안쪽 벽에 붙입니다.
CTU 기준 적용은 먼저 화물끼리 서로 막히는 배치를 찾습니다. 그 때문에 컨테이너가 늘면 기본 배치를 쓰고, 화물로 막히지 않은 면은 고정재 권고에 "CTU 열린 면 보강"으로 화물별로 적습니다(CTU Code는 에어백·충전재·각재·래싱으로 막는 것도 인정). 얹힘은 고정재로 해결되지 않아 계속 금지하며, 그 때문에 기본보다 대수가 많으면 결과 설명에 이유를 표시합니다. 이 모드는 CTU Code의 배치 규칙을 적용한 검토용 결과이며 준수를 보증하지 않습니다.
| 방식 | 대수가 같을 때 먼저 비교하는 항목 |
|---|---|
| 추천 (기본) | CTU 사전검사 등급 → 좌우 편차 등급 → 앞뒤 편차 → 운송 안정성 검토 건수 → 질량 집중·수직 무게중심 초과량 → 큰 화물이 안쪽에 있는 정도 → 중심 편차 → 사용 길이 |
| 붙여 싣기 | 사용 길이 → CTU 등급 → 좌우 편차 등급 → 검토 건수 → 중심 편차 |
| 무게중심 | CTU 등급 → 좌우 편차 등급 → 앞뒤 편차 → 중심 편차 → 검토 건수 → 사용 길이 |
예전의 폭 균형은 추천에 합쳤습니다(저장된 프로젝트의 폭 균형은 추천으로 엽니다).
모든 기준값의 출처(CTU Code, 제조사, Cubestow 설정)는 ALGORITHM-POLICY.md 5장에 표로 정리했습니다.
적재 순서는 기본적으로 가장 안쪽부터 문쪽으로, 같은 위치에서는 아래층부터 생성됩니다.
정적 웹 애플리케이션이며 로컬 개발 서버와 배포용 빌드를 제공합니다.
npm test # 전체 단위 테스트(약 3분, 배포 전 필수. 오래 걸리는 테스트는 test/slow-*.test.mjs로 나눠 동시에 돈다)
npm run test:quick # 오래 걸리는 @slow 테스트 9개를 뺀 빠른 확인(약 30초)
npm run format # 코드 서식 정리(Prettier, .prettierrc.json). 커밋 전에 실행
npm run lint # 정적 검사(ESLint, eslint.config.mjs). 경고도 0개여야 통과하며 CI에서도 돈다
npm run benchmark # 회귀 게이트, 결과 파일은 바꾸지 않음
npm run benchmark:write # 기준 결과(benchmarks/*.json) 갱신
npm run build
npm run test:e2e
npm run samples:capture # 샘플 결과 미리보기 캡처·요약 다시 만들기
스타일은 styles.css(기본), sample-results.css(샘플 결과 화면), v3-projects.css(현재 화면) 세 파일이며 이 순서로 불러온다. 고치기 전에 node tools/visual-snapshots.mjs before, 고친 뒤 node tools/visual-snapshots.mjs after로 4개 폭 × 10여 개 상태의 전체 화면을 찍고 node tools/visual-snapshots.mjs --compare before after로 비교한다. 의도한 곳만 달라져야 한다. node tools/css-tidy.cjs는 쓰이지 않는 선택자와 뒤에서 덮어쓴 선언을 찾아 주고, --apply를 붙이면 지운다(주석은 남김).
상단 메뉴 CTU Code(/library/ctu-code, 해설은 /library/ctu-code/<id>)는 CTU Code 등 공식 원문을 배포처 링크로 걸고, Cubestow가 직접 쓴 한국어 해설을 보여 준다. CTU Code와 정보자료는 IMO 저작권(사전 서면 허가 없이 복제 금지)이라 파일을 올리지 않는다. 해설을 추가할 때는 library.js의 DOCS에 항목을 넣고 PLAN의 상태를 done으로 바꾼다. 해설은 원문 번역이 아니라 요약이며, 표 숫자는 원문과 대조한다.
상단 메뉴 샘플 결과(주소 /samples)는 샘플 20개를 적재량 우선·기본·CTU 기준 적용으로 계산한 3D 캡처와 요약을 나란히 보여 준다. 화면은 sample-results/manifest.json을 읽어 그리므로, 알고리즘을 바꾼 뒤에는 npm run samples:capture를 실행하고(로컬 서버를 직접 띄워 몇 분 걸림) sample-results/를 함께 커밋·배포하면 된다. 컨테이너마다 정면과 정반대 대각선(카메라 180°) 두 장을 찍는다. 캡처 머리에 앱 버전·엔진·날짜가 기록된다.
주요 파일:
index.html 화면 구조
styles.css 기본 스타일(예전 layout-fixes.css·v2.css 포함)
app.js 입력, 화면 상태, 결과 표시
view-3d.js 3D·평면 적재 화면 그리기(three.js)
import-export.js Excel·CSV 가져오기, PDF·Excel 내보내기
securing-plan.js 고정재 계획(에어백·스페이서·충전재·각재·래싱·검토 항목, CTU 기준)
packing-engine.js DOM과 분리된 적재 엔진
engine/ 엔진 소스 조각(00-header·10-rules·20-geometry·30-placement·40-evaluation·50-shipment·90-exports). 엔진은 여기서 고치고 npm run engine:build로 packing-engine.js를 다시 만든다(테스트가 둘이 같은지 확인)
engine-worker.js 엔진을 백그라운드에서 실행하는 Web Worker
project-model.js 저장 데이터 정규화
project-store.js 로컬·Supabase 저장과 로그인
supabase-schema.sql 사용자별 저장 테이블과 RLS 정책(전체 스키마. 새 변경은 supabase/migrations/에 날짜순 파일로 두고 Supabase 대시보드 SQL Editor에서 순서대로 실행한다)
vendor/three.min.js 로컬 3D 엔진
LOADING-SIMULATOR-PRD.md 제품 요구사항 문서
ALGORITHM-POLICY.md 알고리즘 원칙·판정 기준·한계 문서
ALGORITHM-LEARNING.md 전략 경쟁·현장 피드백·학습 승격 정책
SIMULATION-FEEDBACK.md 시뮬레이션 질문·판정·개선 이력
test-projects/ 반복 검토용 CSV 화물 10종
solution-validator.js 독립 결과 검증기
result-review.js 규칙 기반 자동 평가와 알고리즘 점검 기록 판단
sample-results.js 샘플 결과 미리보기 화면(/samples)과 주소별 화면 전환(경로 주소, 옛 # 주소 이전)
library.js CTU Code 메뉴(/library/ctu-code, 옛 자료실): 공식 원문 링크, 한국어 해설, 참고 자료
sample-results/ 샘플 결과 캡처(img)와 요약(manifest.json)
tools/capture-sample-results.mjs 샘플 결과 캡처 도구(npm run samples:capture)
tools/css-tidy.cjs 쓰이지 않는 CSS 선택자와 덮어써진 선언 정리
tools/visual-snapshots.mjs 화면 회귀 확인(여러 폭·상태 전체 화면 캡처와 비교)
benchmark.mjs 안전 기준 × 우선 기준별 품질·안전·시간 회귀 게이트
scenario-benchmark.mjs 10개 CSV 회귀 검사
현재 엔진은 휴리스틱으로 좋은 배치를 빠르게 찾지만 전역 최적해를 보장하지 않습니다. 상부 허용하중이 입력된 제품만 누적 압축하중을 검사하며, 실제 출하 전에는 미입력 제품의 압축강도와 면압, 바닥 허용 하중, 축하중, 운송 진동, 고정재 사양과 관련 안전 규정을 별도로 검토해야 합니다.