제일 큰 특징은, STEP,IGES,STL,BREP 그리고 FCStd 포멧의 파일을 렌더링해서 보여주는 기능이 있다. 해당 파일을 저장소에서 클릭하면 뷰어가 나타나서 보여준다. 내부적으로, OCC로 해당 파일을 읽어서 Mesh 포멧으로 변환한 다음, 그것을 WebGL을 이용해서 렌더링해주는 기능을 구현한 것 같다.
그 다음으로는, 파이썬으로 코어모듈을 작성해서, 모델링 및 어셈블리 구조를 구성할 수 있도록 스크립트화된 CAD를 만들고 있다. 기본적인 기능은 이미 동작을 하는 것 같다. 해당 파이썬 스크립트를 저장소에서 클릭하면, 파이썬 소스가 아래에 나오고, 그 위에는 WebGL 화면상에 3D 모델이 렌더링되어 보여진다.
기타 서브 프로젝트들을 보면, FreeCAD 워크벤치도 만들고 있고, 파이썬 CAD 스크립트 모델링을 위한 IDE도 개발하고 있는 것 같다.
기타 예정된 사항들
그리고 로드맵을 보면, 나중에는 IFC도 구현해서 전자회로도 자동으로 모델링되도록 엮어넣을 생각을 하고 있고, Diff 툴도 만들려고 하고 있고, 기타등등 여러가지 기능들을 계속 추가할 생각인가보다.
프랑스인 해커가 이런 종류의 개발을 할 때는, 처음에 계획을 원대하게 세우고 시작을 산뜻하게 했다가, 수 년의 시간이 흐르면서 점점 지지부진해지고 결국 접게되는 경우를 몇 번 본 적이 있는데, 이 프로젝트는 이런 포부처럼 잘 구현이 되어 나갈 수 있을지 궁금하다. 성공과 실패는 아직 알 수 없다. 2019년도에 이제 막 시작한 프로젝트이기 때문에…
다만 아직은 기욤 플로랑 혼자 코딩하고 있는 단계이고, 온라인상에 인지도도 거의 없으며, 서버를 구축한 레시피도 아직 완전히 공개하고 있지는 않기 때문에 첫걸음을 뗀 단계라고 생각이 된다.
영감을 주는 요소
이미 존재하고 있는 오픈소스들을 파이썬으로 엮어서 서비스를 구현하려고 한 계획은 상당히 효과적으로 보인다. 다만 이렇게 할 경우, 나중에 서비스 규모가 커지면서 최적화나 퍼포먼스 문제에 봉착했을 때 극복이 가능할지는 두고봐야 할 것 같다. 하지만 소규모 팀 협업 정도를 위한 서비스라면 문제가 없을 것이다.
STEP 파일을 웹상에서 바로 볼 수 있도록 렌더링을 시도한 부분은 굉장히 참신하다. 대신 데이타 로딩과 변환을 위해 서버에 부하가 간헐적으로 상당히 걸릴 수 있기 때문에, 서버쪽의 퍼포먼스와 자원이 좀 필요하기는 할 것 같다. 하지만 이렇게 파일을 직접 볼 수 있는 웹서비스 자체가 거의 없기 때문에, 매우 중요하고 유용한 기능적 요소라고 생각이 된다.
파이썬 스크립트로 어셈블리 정보를 구성한다는 것은, 실제 설계자들과의 괴리가 아직은 큰 것 같다. 기계설계자들은 자신이 프로그래머라고 생각 자체를 안하기 때문에, GUI가 제공되는 상용 CAD 소프트웨어를 사용해서 설계하는 방식만 생각을 한다. 코딩으로 제대로 된 설계를 하는 것이 과연 현실적일까? 그런 방식은 기어 치형을 만들거나, 날개 블레이드 형상 설계하거나 하는 등의 제한적인 경우에만 유용한 것이 아닌가 하는 것이 아직은 일반적인 생각이다. 어셈블리를 코딩으로 조합해 나가는 것이 생산성만 떨어뜨리는 것은 아닌가? 떨어지는 생산성과 학습곡선의 댓가를 치를 만한 반대급부나 이익은 무엇인가? 그런 부분에 대해서는 아직 충분한 답은 나와있지 못한 것 같다. 아직은 Git으로 버전관리하는데는 소스코드 쪽이 더 유리하다는 점 정도다.
결론
아무튼, 다재다능한 한 프랑스 해커가 이런걸 하기도 하는구나 싶어서 대단하다 싶고…
뭔가 아이디어가 있는데 그걸 직접 코딩할 실력이 안된다거나 시간이 없다거나 하는건 순전히 핑계구나 하는걸 느낀다. 남을 시키지 말고 직접 연구해서 구현하라는 엔지니어의 황금률을 다시 한 번 상기하게 된다.