초슬림 명함이 유동 시뮬레이션을 실행함
(github.com/Nicholas-L-Johnson)- flip-card 프로젝트는 초소형 명함에서 유체-내재-입자(FLIP) 시뮬레이션을 동작시키는 오픈소스 하드웨어임
- PCB 설계 파일과 시뮬레이션 로직이 직접 포함되어 있어 참고와 응용이 용이함
- WASM 시뮬레이터를 통해 실제 하드웨어 없이도 시뮬레이션 디버깅이 가능함
- 재충전 가능한 배터리와 USB-C 포트 등 창의적 설계가 적용됨
- Matthias Müller 등 유명 연구자들의 최신 알고리듬과 참조 프로젝트로 개발됨
flip-card 프로젝트 개요
- flip-card는 유동 시뮬레이션 알고리듬을 초슬림 명함 크기의 회로기판에 임베디드하여, 실제로 실행하는 실물 하드웨어 오픈소스 프로젝트임
- 이 프로젝트는 mitxela의 fluid simulation pendant 프로젝트에서 영감을 받아, 직관적이고 시각적인 유체 움직임을 명함에서 확인할 수 있다는 점에서 차별점이 있음
주요 파일 및 구조
- PCB 설계 파일은 "kicad-pcb" 폴더에 포함되어 있음
- FLIP 기반 유동 시뮬레이션 로직은 "fluid_sim_crate" 폴더의 독립 Rust crate에 위치하며, Matthias Müller의 연구 및 "Ten Minute Physics"에서 소개된 최신 방법론을 기반으로 구현됨
- "flip-card_firmware" 파일에 RP2350 칩 기반의 펌웨어 구현이 포함됨
기능 및 특징
- 재충전 배터리 내장: cnlohr의 tiny touch lcd 프로젝트의 설계를 참고하여 보드 엣지 USB-C 포트가 적용되어 실제 활용성을 높임
- WASM 시뮬레이터: "sim_display" 폴더의 WebAssembly 툴로, 하드웨어가 아닌 PC 및 웹 환경에서도 시뮬레이션 디버깅이 가능함
- 각 폴더별 상세 설명은 각각의 README 파일에 담겨 있음
기타 정보
- flip-card는 유체 시뮬레이션 칩 구현, 하드웨어 회로 설계 경험, WebAssembly 기반 시뮬레이션 디버깅, 재충전 보드 설계 등 다양한 최신 임베디드 기술 학습 및 참고용으로 적합함
- 오픈소스 커뮤니티에서 참조 사례 및 설계 노하우로 주목받는 프로젝트임
Hacker News 의견
-
명함 크기의 빈 통 안에 물을 일부 채워 넣는 것의 장점은 더 현실감 있는 유체 운동을 구현할 수 있고, 저렴하면서 제작도 쉽고, 디버깅도 간편함이 있음
단점으로는 앉았을 때 엉덩이가 젖는 위험이 있고, 어렵고 도전적인 일을 할 때의 성취감이 덜함- 카드 크기에서는 유체의 움직임이 너무 빨라지는 문제가 생김
-
보드 끝에 있는 USB-C 포트가 정말 멋짐을 느낌, 앞으로 사람들이 별도의 부품이나 납땜 없이 보드에 USB-C 포트를 달 수 있다는 걸 알게 되면 이런 시도가 많이 나올 것으로 예상함
-
정말 멋진 명함인데, 이렇게 나눠주기엔 가격이 다소 비쌀 것 같음
예전에 하드웨어 명함을 만든 분을 만났는데, 기억은 잘 안 나지만 이 정도로 멋지진 않았음
그분 명함은 이미 많이 긁혀 있었고, 주고 나서 다시 돌려달라고 해서 좀 이상했던 기억이 있음- 아무에게나 주진 않겠지만, 받은 사람은 평생 기억할 것 같음
책상 서랍에 두고 계속 만지작거리며 놀게 될 듯, 그러다 보면 자연스럽게 그 사람 이메일이나 LinkedIn을 외워버릴 것 같음 - 이런 종류의 하드웨어 명함은 주로 포트폴리오 프로젝트로 활용됨
웹사이트로 많은 트래픽을 유도하고, 프리랜서나 취업 준비자라면 소량만 제작해서 잠재 고객이나 구직 기회가 있을 때 특별하게 나눠주기도 함 - 명함을 다시 달라고 하면 그건 명함이 아니라 그냥 장난감임
- 어떤 사람에게는 굳이 명함을 줄 필요도 없을 듯함
구직 중이면 이런 프로젝트를 블로그 포스트나 이력서/웹사이트에 링크 거는 것만으로도 충분히 인상적일 수 있음 - 혹시나 QR 코드 표시 모드나 버튼이 있을 거라고 기대했었음
- 아무에게나 주진 않겠지만, 받은 사람은 평생 기억할 것 같음
-
PCB 설계도나 회로도가 어떻게 생겼는지 궁금하다면 KiCad 파일을 볼 수 있는 온라인 뷰어에서 직접 확인해볼 수 있음
카드 제작자(phirks?)에게 질문이 있는데, 더 많은 인터랙션이나 LED 매트릭스를 이용한 텍스트 등 다양한 정보를 출력해 볼 생각을 해보았는지 궁금함
터치 버튼을 사용하면 BOM(부품 리스트)상 거의 추가 비용 없이 컨트롤이 가능함
물론 현재 상태만으로도 정말 멋짐- 가속도계를 이용해서 테트리스 같은 게임을 추가할 생각을 했었음
일단 구직을 마치고 나서 그걸 해볼 계획임
실제로 숫자를 표시하는 코드는 이미 다 구현해 뒀는데 아직 사용하지 않고 있음
텍스트는 생각보다 잘 안 됨, 글자가 잘 보이려면 생각보다 더 큰 공간이 필요하고, 지금처럼 LED 사이 간격이 넓으면 작은 픽셀 폰트들이 보기 안 좋음
스크롤 텍스트는 나쁘지 않을 듯한데 아직 거기까지 신경 못 씀
QR 코드를 표시해보려 했으나 스캔이 잘 안 됐음
버튼은 사용하지 않는다는 원칙이 있어서, 가속도계의 클릭·더블클릭을 활용할 수 있다면 그걸 더 고민해볼 생각임
누구든지 포크·기여·이슈 제기를 해주면 좋겠고, 유지보수도 잘 해보겠음
- 가속도계를 이용해서 테트리스 같은 게임을 추가할 생각을 했었음
-
중국에서는 이미 “디지털 모래시계”(digital hourglass) 같은 제품이 이런 방식으로 꽤 오래전부터 팔리고 있음
Acorn Archimedes용으로 Cataclysm이란 전체 게임이 이런 콘셉트로 만들어진 적 있음, YouTube 영상에서 볼 수 있음
Xbox 360으로도 리메이크됐지만, 당시 기기 치고 아주 인상적이었다고 기억함- 정말 멋지고 복고적인 유체 시뮬레이션 게임임
Oxygen Not Included에서는 다양한 유체와 기체가 시뮬레이션되고, 샌드박스 모드와 디버그 툴까지 있음
다양한 소재들이 서로 상호작용하는 걸 그림처럼 그려보는 걸 특히 좋아함
게임 플레이 영상이 있음 - 혹시 Digital Disco Ball 같은 것도 있는지 궁금함
- 정말 멋지고 복고적인 유체 시뮬레이션 게임임
-
이런 프로젝트가 마음에 든다면, mitxela의 fluid simulation pendant도 정말 강추임
그의 모든 작업물들이 항상 놀랍고, 유익하면서도 재미있음
모든 걸 아낌없이 공유하고, 영상도 글도 퀄리티가 높고 목소리도 좋아서 감탄함
이런 분들이 더 많아졌으면 하는 바람임
꼭 영상과 글을 시청해보길 추천함- 원형 디자인이 유체 시뮬레이션에 더 잘 어울림
- 디자인이 아주 마음에 들었음
다만 가격이 £1200이라서 조금 부담스럽긴 함
-
디자인이 예술적으로 아름다움
개인적으로 실크 레이어가 겹치는 부분들이 보이는데, 그 부분을 정리하거나 디자이네이터(부품 명칭)를 다 없애도 좋을 것 같음
뒤쪽 텍스트 폰트는 더 장난스러운 느낌을 써보고 싶음, 취향에 따라 다르겠지만
전체적으로 훌륭하게 마감된 프로젝트임
요즘 RP2350 LED 작업을 많이 하는데, 내가 디자인 중인 펜던트에도 이 코드를 돌려볼 수 있는지 궁금함 -
약간 주제에서 벗어나지만, 물리 시뮬레이션 코딩을 어디서부터 공부하면 좋을지 궁금함
몇 년 전 taichi_mpm 프로젝트를 봤는데, C++로 88라인밖에 안 되지만 너무 어렵게 느껴졌음
컴파일러나 데이터베이스 관련해서는 간단한 구현을 해본 경험도 있지만, 물리 시뮬레이션에서만큼은 완전히 백지상태인 걸 느낌- 시작하려면 "수치 해석(numerical methods)"와 "계산 물리(computational physics)"를 먼저 접하는 것이 좋음
물리 시뮬레이션은 범위가 매우 넓어서, 유체 시뮬레이션과 행성 궤도 계산의 방법이 많이 다름
근본적으로는 다양한 변수들을 미분방정식과 선형대수 기반으로 수치적으로 적분하는 게 공통임
가장 기본적으로는 계산된 가속도·속도·위치를 한 스텝마다 갱신하는 오일러 방법(Euler's method)이 있고, 오차가 커서 실제로는 Runge Kutta 같은 고급 방법이 많이 쓰임
물리계에 지켜야 할 속성이 있다면(예: 에너지 보존), 이걸 보장하는 수치 방법도 있음
또 입자 시뮬레이션이냐, 그리드 시뮬레이션이냐의 방식도 크게 다르기 때문에 이 질문이 물리학의 핵심 깊이와 연결됨
모든 정보는 물리적인 것이라는 식의 고전적인 말로 마무리함 - 강체(리짓바디) 시뮬레이션은 훨씬 단순함
SIGGRAPH 2001 리짓바디 시뮬레이션 강의 자료가 다소 어렵지만, 수학적 이해부터 전과정을 훑어볼 수 있음 - pico-8처럼 일부러 성능을 낮춘 게임 플랫폼에서 제공하는 튜토리얼이 큰 도움이 됨
예를 들어 캐릭터의 x/y 위치, dx/dy(속도)를 매 프레임마다 갱신하는 마리오 같은 단순 물리 시뮬레이션을 구현해보면 기본 감각을 익힐 수 있음
플레이어가 점프 버튼 누르면 '점프' 상태로 dy=1, 매 프레임 dy에 0.9 곱함
dy가 0 이하가 되면 '낙하' 상태로 전환, 그 후 dy에 1.1 곱하면서 터미널 속도까지 가는 식
이런 기본만 익혀도 'falling sand'류의 심플한 물리 효과는 쉽게 구현 가능함 - 물리 시뮬레이션은 대부분 입자 기반이거나 미분방정식 적분 기반임
실제로는 둘 다 이산화(discretization)와 수치 계산에서 만나게 됨
"Numerical Recipes" 책이 물리학자 누구나 읽는 바이블이고, "Computer Simulation of Liquids"(Allen)도 시작서로 괜찮음
여기서 말하는 건 실제 물리 정확성을 추구하는 분야로, 게임 디자인이라면 진짜 물리와 비슷해 보이기만 하면 되는 다양한 휴리스틱도 활용할 수 있음 - 통계역학 쪽에는 Coursera 통계역학 강의가 추천임
파이썬 예제도 아주 많이 포함하고 있음
tenMinutePhysics 동영상도 입문하기에 좋은 영상임
- 시작하려면 "수치 해석(numerical methods)"와 "계산 물리(computational physics)"를 먼저 접하는 것이 좋음
-
2009년 당시의 최신 기술 사례는 여기에서 볼 수 있음
-
제작 방식에 대해 더 자세히 알고 싶음, 표면 실장(서피스 마운트) 조립은 외주 업체와 작업한 게 아닐까 추정함
- 전자제품 제작은 요즘 생각보다 저렴하고 쉽게 할 수 있음
회로와 레이아웃은 KiCAD라는 오픈소스 툴로 설계해서, 아마 해외 PCB 제작업체에 주문했을 것이고, 이 정도 복잡도는 쉽게 소화 가능함
몇 백 달러면 만들고 배송까지, 한 달 안에 가능함
수작업으로 SMD(표면 실장 부품) 조립을 하려면 솔더 페이스트를 바르고 부품을 얹은 뒤, 전체를 가열해서 솔더링해야 하는데, LED가 이렇게 많으면 수작업은 매우 번거로움 - 실제로 조립업체와 함께 작업했음(부품 위치를 알려주는 centroid 파일이 있음), 하지만 이런 부품 실장은 생각보다 수작업도 가능함
오히려 이 방법이 관통형(Through-hole)보다 더 쉽다고 느껴질 때도 있음, 보드를 자꾸 뒤집을 필요가 없기 때문임
그래도 99.9% 확률로 JLC나 PCBWay 차원에서 제작됐을 것임 - 이런 회로판은 JLCPCB 같은 곳에서 단가 몇 달러로도 소량 제작 가능함
다만 이 제품의 LED는 퀄리티가 좋아 보이고, 일부 부품은 단가가 높을 수 있음 - LED를 이렇게 정밀하게 배열한 게 궁금함
실리콘 같은 재질의 그리드형 가이드로 맞췄는지, 아니면 로봇 픽앤플레이스 장비가 정밀하게 알아서 배치한 것인지 궁금함
- 전자제품 제작은 요즘 생각보다 저렴하고 쉽게 할 수 있음