Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Load wisely. Ship safely. 컨테이너 적재 계획을 계산하고 3D로 확인하세요.
Translation pending
BusinessJavaScript · CSSGitHub @cowpigpapaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Cubestow — Load wisely. Ship safely. 컨테이너 적재 3D 시뮬레이터
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
제품 규격, 중량, 수량과 적재 제약을 입력하면 컨테이너별 배치·적재 순서·고정재 위치를 계산하고 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.mdRead the full README ↗
____ _ _
/ ___| _| |__ ___ ___| |_ _____ __
| | | | | | '_ \ / _ \/ __| __/ _ \ \ /\ / /
| |__| |_| | |_) | __/\__ \ || (_) \ 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 회귀 검사
현재 엔진은 휴리스틱으로 좋은 배치를 빠르게 찾지만 전역 최적해를 보장하지 않습니다. 상부 허용하중이 입력된 제품만 누적 압축하중을 검사하며, 실제 출하 전에는 미입력 제품의 압축강도와 면압, 바닥 허용 하중, 축하중, 운송 진동, 고정재 사양과 관련 안전 규정을 별도로 검토해야 합니다.