Show HN: 브라이노트(braiNOTES), 브라우저 탭에서 강의 PDF에 필기하는 기능
요약
braiNOTES는 브라우저 기반의 오픈 소스 필기 및 화이트보드 도구입니다. OneNote나 GoodNotes처럼 손글씨 필기가 가능하며, 특히 강의 PDF를 옆에 배치하여 직접 필기하거나 슬라이드의 내용을 잘라내어 노트로 활용할 수 있습니다. 별도의 서버나 계정 없이 브라우저에서 모든 것이 저장되어 사용이 간편합니다.
핵심 포인트
- 브라우저 탭에서 작동하는 오픈 소스 필기 앱입니다.
- PDF에 직접 필기하거나 슬라이드 내용을 잘라내어 노트로 활용할 수 있습니다.
- 별도의 서버나 계정 없이 브라우저 로컬 저장소에 모든 것이 저장됩니다.
braiNOTES는 OneNote나 GoodNotes처럼 손으로 필기할 수 있는 오픈 소스 앱이지만, 브라우저 탭에서 작동합니다. 강의를 위해 제작되었으며, 슬라이드가 노트 옆에 열리거나 작성하는 페이지가 됩니다. 계정이나 서버가 필요 없으며, 모든 것이 브라우저에 저장됩니다.
기능 (Features)
- 필압을 지원하는 볼펜, 만년필, 마커, 연필 및 형광펜
- 빈 종이, 줄 노트, 그리드 또는 점선 용지에서의 노트 작성, 그리고 테두리가 없는 화이트보드
- PDF에 직접 필기하거나, PDF를 옆에서 읽으며 일부 내용을 노트로 잘라내기(snip)
- 사진, 도형, 텍스트, 라쏘(lasso), 지우개 및 레이저 포인터
- 원본 페이지와 벡터 잉크가 포함된 PDF 또는 PNG 형식으로 내보내기(Export)
- 노트북을 백업하거나 공유하기 위한
.brainotes파일 - 자체 저장 기능이 있으며, 한 번 열면 오프라인에서도 작동합니다.
점선 용지 위의 만년필과 형광펜 사용 예시:
<p align="center"> <img src="https://raw.githubusercontent.com/swimmingbrain/brainotes/HEAD/docs/pen.gif" alt="A heading and two lines of an integration written with the fountain pen on dotted paper, the result marked with the highlighter" width="800" /> </p>옆에 배치된 강의 PDF와 노트로 잘라낸 슬라이드 일부, 해당 페이지 배지가 슬라이드로 돌아가는 기능:
<p align="center"> <img src="https://raw.githubusercontent.com/swimmingbrain/brainotes/HEAD/docs/study.gif" alt="슬라이드에서 노트로 그려진 것이 옮겨지고, p. 2 배지가 슬라이드로 돌아가며 그 아래에 선이 쓰여지는 모습" width="800" /> </p>어두운 종이 위의 화이트보드, 펜을 멈추면 달라붙는 원들, 레이저 포인터:
<p align="center"> <img src="https://raw.githubusercontent.com/swimmingbrain/brainotes/HEAD/docs/board.gif" alt="화판이 어두워지고, 두 개의 거친 원이 깔끔한 원으로 달라붙으며 레이저가 겹치는 부분을 원으로 표시하는 모습" width="800" /> </p>단축키 (Shortcuts)
| Key | 기능 (What it does) |
|---|---|
P H E V | 펜, 형광펜, 지우개, 선택 (Pen, highlighter, eraser, select) |
| ... |
브릿지 (Bridge)
브릿지는 braiNOTES를 컴퓨터의 작은 서버인 brainBRIDGE에 연결하여 코딩 에이전트가 사용자의 페이지를 읽고, 그 위에 글을 쓰고, 최종적으로 TeXbrain으로 정리할 수 있게 합니다.
<p align="center"> <img src="https://raw.githubusercontent.com/swimmingbrain/brainotes/HEAD/docs/bridge.gif" alt="환경 설정(Preferences)에서 브릿지를 켜면 초록색으로 바뀌고, 서버에서 온 텍스트 줄이 페이지에 나타나며 한 번 되돌리기(undo)로 다시 돌아가고, TeXbrain 버튼을 누르면 연결된 프로젝트가 열리는 모습" width="800" /> </p>- notes.swimmingbrain.dev/?bridge를 열거나, 환경 설정(Preferences)의 일반(General)에서 브릿지를 켜세요. 브라우저가 요청할 때 로컬 연결을 허용하고 상태 표시줄의 Bridge 부분이 초록색으로 변해야 합니다.
- 명령 팔레트(command palette)에서
Bridge: connect와Bridge: disconnect를 실행하면 동일한 기능을 수행합니다. - 팔레트에서 'Link TeXbrain project'를 사용하면 노트북이 TeXbrain 프로젝트에 연결되며, 상단 바의 TeXbrain 버튼을 누르면 해당 프로젝트가 열립니다.
- 브릿지를 통해 들어오는 모든 편집 내용은 한 번 되돌리기(undo) 단계입니다.
- 소켓은 127.0.0.1로만 전송되므로 컴퓨터 외부로는 아무것도 나가지 않습니다.
로컬 실행 (Running locally)
pnpm install
pnpm dev
Open http://localhost:5173. pnpm test는 테스트를 실행하고, pnpm check는 타입 검사를 하며, pnpm build는 정적 사이트를 build/에 작성합니다. 도움을 주고 싶다면 docs/CONTRIBUTING.md를 참고하세요.
작동 방식 (How it works)
- 잉크(Ink)는 캐시된 캔버스 타일(cached canvas tiles)에 그려지며, 변경된 타일에만 다시 그립니다.
- 스트로크(stroke)는 포인트와 펜 압력으로 만들어진 완벽한 자유 필기 형태의 윤곽선입니다.
- 펜이 움직이는 순간 선이 그려집니다. 유로 필터(one euro filter)는 글을 쓰는 동안 떨리는 손을 진정시키고, 펜을 들 때 가벼운 재조정(light refit)이 실행됩니다.
- PDF는 워커(worker) 내에서 pdf.js에 의해 그려지며, 사용자가 보고 확대하는 페이지와 비율의 내용만 그립니다.
- 노트북, 페이지 및 파일은 IndexedDB에 저장되며 변경 사항 발생 직후에 저장됩니다.
.brainotes파일은 노트북을 포함하며, 페이지별 JSON 파일과 PDF 및 이미지를 담고 있는 zip 압축 파일입니다.- PDF 내보내기(export)는 원본 PDF 페이지를 파일에 넣고 그 위에 잉크를 벡터 형태로 올립니다.
기술 스택 (Tech stack)
| 파트 | 라이브러리 |
|---|---|
| 프레임워크 | Svelte 5 + SvelteKit (static adapter) |
| ... |
라이선스 (License)
MIT이며, LICENSE를 참고하세요. 각 라이브러리는 자체 라이선스를 유지하며, THIRD_PARTY_LICENSES에 목록이 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기