CleanFrame
A personal home screen for Samsung The Frame. A starting point to fork and adapt.
얼굴(관상)·손바닥(손금)·태어난 때(사주)로 타고난 운명을 풀이하고 하나로 종합합니다. (오락용)
Translation pending
LifestyleJavaScript · CSSGitHub @jyseok0311OnlineOwner 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
카메라로 얼굴을 찍으면 관상학(삼정·오관·십이궁)으로 운세를 풀이하는 웹앱 (오락용, PC·모바일 지원)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
얼굴(관상) · 손바닥(손금) · 태어난 때(사주) 세 가지로 타고난 운명을 읽고 하나로 종합해 주는 웹앱입니다. (오락용)Read the full README ↗
얼굴(관상) · 손바닥(손금) · 태어난 때(사주) 세 가지로 타고난 운명을 읽고 하나로 종합해 주는 웹앱입니다. (오락용)
PC와 휴대폰(안드로이드·아이폰) 모두에서 동작하며, 사진과 생년월일은 기기 밖으로 전송되지 않습니다.
설치 없이 PC나 휴대폰 브라우저에서 위 주소 중 아무 곳이나 열면 됩니다. 둘 다 같은 저장소(main)에서 자동으로 배포되는 정식 HTTPS 주소라서 휴대폰에서도 인증서 경고 없이 카메라를 쓸 수 있습니다. (Vercel은 프로젝트 주소 gwansang-reader.vercel.app만 로그인 없이 열리고, 같이 생기는 ...-ai-maestro.vercel.app 형태의 주소는 Vercel 로그인이 필요합니다.)
start.bat을 더블클릭하면 서버가 켜지고 브라우저가 자동으로 열립니다. 명령줄에서는 다음과 같습니다.
node server.js --open
필요한 것은 Node.js 하나뿐입니다. 외부 패키지를 설치하지 않습니다.
https://<PC의 IP>:5443 주소를 직접 입력해도 됩니다.휴대폰이 접속되지 않으면 다음을 확인하세요.
http:// 주소로 접속하면 브라우저 보안 정책 때문에 실시간 카메라를 쓸 수 없습니다.
이때는 촬영 버튼이 휴대폰 기본 카메라 앱을 열어 촬영하고, 나머지 분석은 똑같이 동작합니다.
| 환경 | 방법 |
|---|---|
| PC Chrome·Edge | 주소창 왼쪽 자물쇠 아이콘 → 카메라 허용 → 새로고침 |
| Windows | 설정 → 개인 정보 및 보안 → 카메라 → 카메라 액세스 켜기 |
| 안드로이드 Chrome | 주소창 왼쪽 아이콘 → 권한 → 카메라 허용 |
| 아이폰 Safari | 설정 → Safari → 카메라 → 허용 (또는 주소창 가가 → 웹 사이트 설정) |
Claude 앱 안의 미리보기 브라우저는 카메라를 막아 두었습니다. 반드시 일반 브라우저에서 여세요.
첫 화면의 종합 결과 보기는 지금까지 한 모든 것을 반영합니다. 관상·손금·사주 중 둘 이상을 마쳤거나 생년월일(사주)만 입력해도 열리고, 동물상·MBTI·타로·궁합을 더할수록 총평이 풍부해집니다. 아직 하지 않은 것은 "더하면 총평이 풍부해져요" 버튼으로 바로 갈 수 있습니다.
| 지수 | 계산 |
|---|---|
| 타고난 바탕 | 관상 40% · 손금 25% · 사주 35%를 합친 점수 (없는 방면은 남은 비중으로 재분배, 사주만 있으면 사주 점수) |
| 지금의 흐름 | 오늘의 운세 40% + 올해 운세 35% + 바이오리듬 25% (바이오리듬 −100 |
| 종합 지수 | 바탕 65% + 흐름 35% |
타로·궁합·MBTI·동물상은 무작위·자기보고·재미 요소라서 점수에는 넣지 않고 풀이에만 곁들입니다.
| 화면 | 그래프 |
|---|---|
| 관상 | 레이더, 삼정 흐름선, 열두 궁 휠 |
| 손금 | 선 레이더, 영역 레이더, 손가락 길이 막대 |
| 사주 | 오행 구성도, 영역 레이더, 오행 도넛, 십성 막대 |
| 오늘 | 레이더, 하루 시간대 막대 |
| 올해·월별 | 월별 꺾은선, 월×영역 히트맵 |
| 별자리 | 별자리 휠(나의 태양·오늘의 달 표시) |
| 바이오리듬 | 세 주기 겹링, 앞뒤 한 달 곡선 |
| 궁합 | 레이더, 두 사람 오행 비교 막대 |
| 동물상 | 여덟 동물 레이더, 비율 막대 |
| 타로 | 카드 뒤집기, 다섯 가지 운 레이더 |
| MBTI | 여덟 극 레이더, 네 축 양방향 막대 |
앱을 열면 바로 관상(相) · 손금(手) · 사주(命) 세 단계 카드가 첫 화면으로 나옵니다. 단계를 마치면 카드가 무지갯빛으로 바뀌고 진행 점이 채워집니다. 세 가지를 다 하지 않아도 두 가지만으로 점수를 합산해 줍니다. 순서도 상관없습니다. (생년월일만 입력해도 위의 종합 리포트는 열립니다.) 한 가지만 보고 싶다면 그 카드를 마친 뒤 카드의 **「결과 보기」**를 누르면 그 결과만 볼 수 있습니다.
| 단계 | 하는 일 |
|---|---|
| 사주 | 양력·음력(윤달 포함) 생년월일과 태어난 시간(모르면 생략)을 입력 |
| 관상 | 정면 얼굴 촬영(이마·눈썹·눈·코·입·턱의 뜻을 하나씩 안내받은 뒤 촬영) 또는 사진 올리기 |
| 손금 | 손가락을 펴고 왼손(선천) → 오른손(후천) 차례로 촬영 (두 손 함께·한 손만도 가능)하거나 사진 올리기 |
관상·손금·사주 중 둘 이상을 마치면 종합 리포트의 「타고난 바탕」 부분에 다음 합산 결과가 들어갑니다.
한계: 이 방식은 사진이 선명하고 손바닥이 정면일 때만 잘 맞습니다. 어둡거나 초점이 흐리거나 손이 많이 기울면 다른 주름을 잡을 수 있어, 결과 화면에 찾은 선을 사진 위에 그려 보여 주고 사진 상태가 나쁘면 알려 줍니다. 선별 기준값은 공개 손바닥 사진 6장의 측정 분포로 잡은 대략적인 값입니다(사진은 저장하지 않았습니다).
node tools/saju-check.mjs로 일주 대조 2000일, 입춘 경계, 알려진 날짜, 서머타임 처리를 다시 확인할 수 있습니다.첫 화면 아래의 여덟 버튼(今 오늘 · 歲 올해·월별·띠 · 星 별자리 · 合 궁합 · 獸 동물상 · 律 바이오리듬 · 牌 타로 · 性 MBTI)으로 엽니다. 위쪽 탭 줄은 좌우로 밀어 다른 탭으로 옮길 수 있고, 오늘의 운세·궁합·동물상·타로·MBTI는 결과 카드를 저장·공유할 수 있습니다.
| 탭 | 필요한 것 |
|---|---|
| 오늘 · 올해·월별·띠 · 별자리 · 바이오리듬 · 궁합 | 생년월일 (없으면 사주 입력 화면으로 안내하고, 입력이 끝나면 바로 그 탭을 엽니다) |
| 동물상 | 관상 촬영 결과 (없으면 촬영으로 안내하고, 분석이 끝나면 바로 동물상을 엽니다) |
| 타로 · MBTI | 없음 (생년월일이 있으면 MBTI에 사주 겹쳐 읽기가 추가됩니다) |
node tools/fortune-check.mjs로 달 위치, 별자리 경계, 같은 날 같은 결과, 한 해 점수 분포, 합·충·십성 계산, 바이오리듬 정점, 궁합 대칭·천간합, 동물상 분류, 타로 78장 데이터·결정성·고른 분포, MBTI 문항·유형 데이터, 관상 부위별 안내 데이터(랜드마크 번호·진행 순서)를 확인할 수 있습니다. node tools/palm-check.mjs는 손을 기울이거나 손가락을 굽혀도 3D 손가락 길이가 변하지 않는지, 손 유형이 한쪽으로 쏠리지 않는지를 가상의 손 1만 개로 확인합니다.생년월일부터 센 날수로 신체 23일 · 감성 28일 · 지성 33일 주기의 사인 곡선을 그립니다. 앞 7일뒤 23일의 흐름 그래프, 오늘의 값(−100100%)과 단계(정점·상승·전환·하강·저점), 단계별 풀이, 다음 정점·저점·전환일(60일 안)을 보여 줍니다. 과학적으로 검증된 이론은 아니며 컨디션을 돌아보는 재미용입니다.
상대의 생년월일(양력·음력, 시간은 모르면 생략)을 입력하면 두 사람의 사주·띠·별자리를 비교합니다. 상대 정보는 저장하지 않고 화면을 벗어나면 사라집니다. 두 사람을 바꿔 넣어도 점수가 같습니다.
| 영역 | 비중 | 보는 것 |
|---|---|---|
| 마음 | 30% | 두 일간의 천간합(甲己·乙庚·丙辛·丁壬·戊癸), 오행의 상생·상극, 음양 조화 |
| 생활 | 25% | 가장 가까운 자리인 일지끼리의 합·삼합·충·해 |
| 인연 | 15% | 띠(태어난 해 지지)끼리의 관계 |
| 보완 | 15% | 한쪽에 비어 있는 오행을 상대가 채워 주는지, 둘 다 많은 오행은 감점 |
| 감성 | 15% | 태양 별자리의 각도(삼각·육분·사각·대립 등) |
점수 폭을 넓혀 천생연분·찰떡궁합·좋은 인연·맞춰 가는 사이·서로 다른 별로 가릅니다(무작위 400쌍에서 천생연분 약 7%, 서로 다른 별 약 3%). 각 사람이 상대에게 어떤 존재인지(십성)와 비어 있는 오행의 보완, 가장 잘 맞는 부분·신경 쓸 부분을 풀이하고 결과 카드를 저장·공유할 수 있습니다.
관상 촬영에서 이미 잰 얼굴 측정값(눈꼬리·눈 크기·얼굴 길이·턱선·턱 끝·코·입 등)을 표준점수로 바꾸어 강아지·고양이·여우·토끼·곰·사슴·공룡·늑대 여덟 동물의 대표 특징과 비교합니다. 사진을 다시 찍지 않으며, 얼굴을 아직 안 찍었으면 촬영으로 안내한 뒤 끝나는 대로 동물상 화면을 엽니다. 닮은 정도, 동물상 비율, 그렇게 판정한 특징(예: 눈꼬리가 올라간 · 턱 끝이 뾰족한), 매력·성향·어울리는 스타일·연애·조심할 점, 잘 어울리는 동물상을 보여 주고 카드로 저장할 수 있습니다.
node tools/calibrate-animal.mjs로 다시 계산하고 --check로 분포를 확인합니다.메이저 아르카나 22장 + 마이너 아르카나 56장(완드·컵·소드·펜타클 × 에이스~10, 시종·기사·여왕·왕), 모두 78장으로 오늘의 한 장 · 과거·현재·미래 · 다섯 가지 운(재물·애정·직업·건강·대인) 세 가지 스프레드를 봅니다. 덱은 「전체 78장」(기본)과 「메이저 22장」 중에서 고릅니다. 질문(선택)을 적고 카드를 뽑은 뒤 카드를 눌러 뒤집으면 한 장씩 풀이가 나오고, 모두 뒤집으면 종합 풀이가 나옵니다(다섯 가지 운은 레이더 그래프 포함). 정방향·역방향(약 35%)별 키워드·풀이·조언이 카드마다 들어 있습니다. 메이저는 연애·일·재물 한 줄 해설이 따로 있고, 마이너는 카드의 기운 방향(다섯 단계)에 맞춘 문장을 씁니다. 카드 앞면 위쪽에는 메이저는 로마 숫자, 마이너는 순서(A·II~X·P·N·Q·K)가 표시되며 결과 카드를 저장·공유할 수 있습니다.
직접 쓴 20문항 간이 검사(네 축 × 5문항, 약 2분)로 16가지 유형을 가리거나, 이미 아는 유형을 직접 고를 수 있습니다. 네 축의 비율, 유형별 강점·약점·연애·일·스트레스·성장 팁, 서로 보완되는 유형, 생년월일이 있으면 사주 일간·신강신약과 겹쳐 읽는 풀이가 나옵니다. 공식 MBTI® 검사와 무관한 오락용이며 문항과 설명은 모두 이 앱에서 새로 썼습니다. 답과 결과는 저장하지 않습니다.
두 가지 전통 분류를 함께 써서 얼굴 윤곽 10가지 × 오행 기질 5가지, 모두 50가지 조합으로 풀이합니다.
총평은 다섯 문단으로, 사람마다 다른 조합으로 엮입니다.
가상 인물 27명으로 비교하면, 두 사람의 총평에서 글자까지 같은 문장의 비율이 26%에서 6%로 줄었습니다.
휴대폰 셀카는 얼굴과 렌즈가 30~40cm로 가까워 코·눈은 크게, 얼굴 옆선은 좁게 찍힙니다. 보정하지 않으면 모든 사람이 비슷한 얼굴형으로 몰립니다.
visualViewport)에 맞추고, 두 손가락 확대와 끌어서 스크롤은 막습니다. 화면을 돌려 방향이 어긋나면 카메라를 다시 엽니다.?debug=1을 붙이면 영상 크기·화면 크기·확대 배율이 카메라 화면에 표시되어, 기기에서 문제가 생길 때 원인을 읽을 수 있습니다.face-guide.js). 자세가 흐트러지면 안내는 그 자리에서 멈추고, 얼굴이 2초 넘게 사라지면 처음부터 다시 합니다. 촬영 버튼은 안내 중에도 언제든 누를 수 있고, 카드의 건너뛰기 로 안내를 마치고 바로 촬영할 수도 있습니다. 화면 움직임 줄이기 설정을 켠 기기에서는 강조 표시가 깜박이지 않고, 카드 내용은 화면 낭독기가 읽어 줍니다.vendor/에 포함해 인터넷 없이도 분석합니다. 손 인식 모델(약 8MB)은 손금을 처음 볼 때 내려받습니다.
(웹폰트만 인터넷이 필요하며, 없으면 기본 글꼴로 표시됩니다.)| 파일 | 역할 |
|---|---|
index.html | 화면 구조 (첫 화면 종합 분석 허브 / 사주 입력 / 카메라 / 분석 중 / 관상·손금·사주·종합 결과) |
style.css | 디자인 (첫 화면·결과·그래프, 휴대폰 전체 화면 카메라, 노치 영역, 하단 고정 버튼) |
app.js | 카메라(스트림·배치·실시간 가이드), 검출, 결과 렌더링, 결과 카드, 허브(첫 화면), 뒤로 가기, QR 코드 |
measure.js | 랜드마크 3D 자세 보정(롤·요·피치), 비율 측정, 촬영 거리 추정과 원근 보정 |
perspective.js | 거리별 원근 보정표 (tools/perspective-table.mjs가 자동 생성) |
physiognomy.js | 관상학 지식 베이스와 해석 엔진 (십자면상·오행·삼정·십이궁, 표준점수 기반 판정) |
saju.js | 사주 계산(절기·일주·시주·음력·서머타임)과 풀이 |
face-guide.js | 관상 촬영 때 부위별 의미 안내(부위 순서·설명·랜드마크 묶음·진행 시간) |
palm.js | 손바닥 펴기, 주름 검출, 선 따라가기, 선 특징 측정, 손 모양 측정, 왼손·오른손 판별 (화면과 무관한 순수 영상 처리) |
palm-reading.js | 손금 풀이(선별·손 모양 10가지·총평), 왼손·오른손 해석과 두 손 비교, 손 모양 오행 분류, 손금 운세 점수 |
fusion.js | 관상·손금·사주를 합친 점수, 오행 관계, 종합 총평 |
views-combo.js | 관상·손금·사주 결과 화면의 그래프와 종합 결과 카드 그리기 |
report.js | 통합 리포트 계산(바탕·흐름·종합 지수, 프로필, 교차 총평, 실천 목록) |
views-report.js | 종합 화면의 링 게이지·통합 총평·프로필·흐름 그래프·실천 목록 |
charts.js | 레이더·흐름선·월별 꺾은선·바이오리듬·링·도넛·휠·히트맵·막대·오행 구성도·3D 운명 구성도 그리기 |
fortune-time.js | 오늘·올해·월별 운세(십성·12운성·합충), 띠운세, 별자리와 달 위치 계산 |
views-extra.js | 오늘·올해·별자리·바이오리듬·궁합·동물상·타로·MBTI 화면과 결과 카드 |
biorhythm.js | 신체·감성·지성 바이오리듬 계산과 풀이 |
match.js | 사주·띠·별자리 궁합 점수와 풀이 |
animal-face.js | 얼굴 측정값으로 동물상 분류 (표본 보정값 포함) |
tarot.js | 타로 78장(메이저 22 + 마이너 56) 데이터, 덱 선택, 시드 셔플 뽑기, 스프레드별 풀이 |
mbti.js | MBTI형 간이 검사 문항, 16유형 풀이, 사주와 겹쳐 읽기 |
palm-worker.js · palm-runner.js |
모든 판정은 표본 인구의 중앙값과 표준편차로 계산한 표준점수로 합니다. 그래서 특정 운이나 얼굴형으로 결과가 쏠리지 않고, 보통 사람은 77점 전후에 놓입니다.
tools/population-sample.json에 번호로 남겼습니다.표본을 늘리거나 바꾼 뒤 다음을 실행하면 새 기준값을 계산하고 분포를 확인할 수 있습니다.
physiognomy.js에 붙여 넣습니다.node tools/calibrate-population.mjs
physiognomy.js에 붙여 넣습니다.node tools/calibrate-population.mjs --offsets
node tools/calibrate-population.mjs --check
측정 방식을 바꿨다면 원근 보정표도 다시 만듭니다.
node tools/perspective-table.mjs
손금 분석을 바꿨다면 임의의 손 좌표로 결과가 한쪽으로 쏠리지 않는지 확인해 보세요. 브라우저 콘솔에서 window.gwansang(analyzePalmFromUrl, setSaju, openCombo, goto, combo 등)으로 단계별 결과를 불러올 수 있습니다.
새 사진의 측정값은 앱을 연 브라우저 콘솔에서 await gwansang.measureUrl('사진주소')로 얻을 수 있습니다.
표본을 추가할 때는 가상 인물 사진이나 본인이 동의한 사진만 쓰세요.
빌드 과정이 없는 정적 사이트라서 저장소 파일을 그대로 올리면 됩니다. main 브랜치에 푸시하면 GitHub Pages와 Vercel(프로젝트 gwansang-reader, 저장소 연결)이 각각 자동으로 다시 배포합니다. server.js와 certs/는 내 PC에서 돌릴 때만 쓰며, certs/는 저장소에 올라가지 않습니다. 앱 파일을 바꿀 때는 sw.js의 VERSION을 올려야 이미 방문한 기기의 캐시가 새 파일로 바뀝니다.
본 결과는 전통 관상학·수상학·명리학 이론에 기반한 오락용 콘텐츠이며 과학적·의학적 근거가 없습니다. 생년월일과 사진은 기기 안에서만 처리되고 저장·전송되지 않습니다. 표본이 가상 인물 44명(십자면상은 27명)으로 작고 서양인 얼굴 비중이 높아서, 기준값은 대략적인 값입니다. 손금은 선별 기준값이 사진 6장, 손 모양 기준값이 해부학 지식에 기댄 대략치라서 더 거칩니다. 3D 관절점으로 잰 손가락 길이와 두 손 한 장 촬영은 가상의 손 좌표와 실제 손 사진 6장(두 손이 함께 찍힌 사진 포함)으로만 시험했습니다. 6장에서는 다섯 유형이 골고루 나오고 두 손이 각각 분석됐지만, 여러 사람의 손이나 휴대폰 실시간 촬영으로는 아직 확인하지 못했습니다. 손 유형이 계속 한쪽으로만 나오면 알려 주세요. 동물상의 동물별 대표 특징은 한국에서 흔히 말하는 인상을 바탕으로 정한 것이고, 타로 해설은 일반적인 해석을 바탕으로 직접 쓴 문장이라 책마다 다를 수 있고, MBTI형 검사는 20문항 비공식 간이 검사라 정확도가 낮습니다. 바이오리듬·타로·MBTI·궁합·별자리 모두 과학적 근거가 없는 오락용입니다.
| 손금 분석을 Web Worker 에서 돌려 화면이 멈추지 않게 함 (실패하면 화면 스레드로 대체) |
embers.js | 첫 화면에 떠오르는 불씨 효과 |
util.js | clamp, 글 줄바꿈, 둥근 사각형 등 공용 도구 |
server.js | 로컬 서버 (HTTP + 휴대폰용 HTTPS, 인증서 자동 생성) |
sw.js, manifest.webmanifest, icons/ | 오프라인 캐시와 앱 설치 |
vendor/ | MediaPipe 판독 엔진(Apache-2.0), 얼굴·손 인식 모델, 음력 변환(MIT), QR 코드 생성기(MIT) |
certs/ | 자동 생성된 HTTPS 인증서. 개인키가 들어 있으니 공유하지 마세요. 서버는 이 폴더를 외부에 내보내지 않습니다. |
tools/ | 기준값 보정·자체 검증 스크립트(saju-check, fortune-check, palm-check, calibrate-population, calibrate-animal, perspective-table)와 표본 측정값 |