코드로 깎은 누리호: 치수와 구성
우주대장의 누리호에는 3D 모델 파일이 없습니다. 브라우저가 코드를 받아 그 자리에서 발사체를 만듭니다. 몸통은 단면 윤곽 하나를 축으로 돌려 깎고, 노즐은 Rao 곡선으로, 배관과 장비는 기본 도형으로 조립했습니다.
치수
| 항목 | 값 | 근거 |
|---|---|---|
| 전체 길이 | 47.2 m | 항우연 공개 제원 |
| 1단 지름 | 3.5 m | 항우연 공개 제원 |
| 2·3단 지름 | 2.6 m | 항우연 공개 제원 |
| 1단 길이 | 23.1 m (단 사이 연결부 포함) | 항우연 공개 제원 |
| 단 이음 높이 | 아래 높이 기준표 | 항우연이 공개한 발사대 그림에서 원근을 보정해 측정 |
높이 기준 (노즐 끝에서)
| 높이 | 위치 |
|---|---|
| 0.95 m | 1단 스커트 |
| 9.95 m | 1단 두 탱크 사이 |
| 19.25 m | 1단 산화제 탱크 윗면 |
| 21.4–23.4 m | 1·2단 사이 원뿔 연결부(지름 3.5 → 2.6 m) |
| 25.2 m | 2단 스커트 |
| 33.5 m | 2·3단 분리면 |
| 40.2 m | 페어링 시작 |
| 47.2 m | 끝 |
export const LEN = 47.2, R1 = 1.75, R2 = 1.3;
/** stations (m above the nozzle exit plane) */
export const ST = {
skirt: 0.95, intertank: 9.95, loxTop: 19.25, cone0: 21.4, cone1: 23.4,
s2skirt: 25.2, s2top: 33.0, s3: 33.5, s3tank: 37.4, fairing: 40.2, nose: 44.7,
};
시뮬레이터 코드(nuri.ts)의 일부를 줄였습니다. R1·R2는 반지름입니다.
만드는 방법
| 부분 | 방법 | 코드 |
|---|---|---|
| 몸통 | 도자기 물레처럼 단면 윤곽 하나를 축으로 돌려 47.2 m를 한 번에 깎음(둘레 192조각) | nuri.ts |
| 엔진 노즐 | 로켓 노즐 설계에 쓰는 Rao 곡선을 함수로 만들어 같은 방식으로 깎음 | nuri.ts |
| 배관·링·장비 | 원기둥, 상자, 고리, 관 같은 기본 도형을 조립. 두 파일에서 원기둥을 만드는 코드가 35곳, 상자 22곳, 재질 43곳 | nuri.ts, stack.ts |
| 도색 | 태극기, '대한민국', '누리', 'F5'를 코드로 그려 붙임. 위치는 5차 발사 중계에 맞추고 기관 로고는 뺌 | nuri.ts |
| 단 분리 | 분리면 안쪽의 돔과 추력 구조, 분리 모터의 불꽃과 연기 | stack.ts |
| 발사대·타워·이렉터 | 같은 방식, 963줄 | naro.ts |
| 조립동·운반차 | 같은 방식, 944줄 | rollout.ts |
| 불꽃·연기 | 그림을 붙이지 않고, 빛이 연기를 통과하는 계산(광선 행진)으로 그림 | fx.ts, launch.ts |
실제와 맞춘 기준
- 4K 실제 발사 영상과 같은 위치, 같은 순간을 렌더해 나란히 놓고 고쳤습니다. 비교에 쓴 실제 영상 프레임은 공개하지 않습니다.
- 2·3단 분리면은 33.5 m를 지켰습니다. 단 구조도만 보면 37.4 m로 옮길 뻔했지만, 영상에서 3단 산화제 탱크 벽에 맺힌 성에 띠(35.4–37.3 m)를 보고 실제 영상을 우선했습니다.
- 3단 엔진은 항우연 개념 설계에 맞춰 재생냉각 일체형으로 바꿨고, 2단 엔진에는 검은 단열 부츠와 냉각관을 넣었습니다.
결과
모델 파일을 내려받지 않으니 설치가 필요 없고, 브라우저가 코드만 받아 발사체와 발사장을 그 자리에서 만듭니다. 치수나 모양을 고칠 때도 숫자 하나를 바꾸면 모든 장면에 바로 반영됩니다.

