프로젝트 소개
Darkly는 화가를 주요 사용자로 삼는 오픈소스 페인팅 애플리케이션으로, 포토샵 대안으로 포지셔닝됩니다. WebAssembly와 WebGPU를 통해 브라우저에서 실행되며, 로그인 없이 오프라인으로 작동하고, 다른 그래픽 도구에 임베드할 수 있는 독립형 Rust 크레이트로도 배포됩니다.
README에 설명된 핵심 기능:
- 노드 기반 브러시 엔진: 라운드, 잉크 펜, 숯, 스머지, 수채화, 리퀴파이, 클론, 블러, 캘리그래피 등의 브러시; 압력, 기울기, 간격, 거리, 각도 입력; 라플라시안 안정화 장치.
- 래스터 레이어 및 그룹, 레이어 마스크, 16가지 블렌드 모드, 플로팅 레이어, 스마트 오브젝트, 필터 레이어 세트(밝기/대비, HSL, 레벨, 커브, 반전, 채도 감소, 색수차).
- 선택 도구: 사각형, 타원, 올가미, 다각형, 마술봉; 교체/추가/빼기/교차 모드와 페더, 안티앨리어싱, 확장, 축소, 테두리, 다듬기 작업.
- 변형 도구: 일반 및 원근 변형, 선택 영역으로 자르기, 캔버스 크기 조정, 이미지 크기 조정, DPI 처리, 캔버스 뒤집기, 90도 회전.
- 문서 처리: 새 문서, 이미지 열기, 네이티브 .darkly 저장/열기, PNG/JPEG/WebP 내보내기, 클립보드 작업, 충돌 복구가 포함된 자동 저장, 프로세스 기록.
- 인터페이스 기능: 명령 팔레트, 애플리케이션 메뉴, 도킹 및 타일 패널, 별도 OS 창으로 분리 가능한 패널, 테마 시스템, 검색 가능한 치트시트가 있는 단축키 시스템, Krita/Photoshop/GIMP 단축키 프리셋, 설치 가능한 PWA.
특징적인 기능:
- Veils: 캔버스를 감싸는 비파괴적 셰이더형 레이어로, 색수차, 프로즌, 그레인, 렌즈 블러, 페인팅, 픽셀레이트, 비 오는 유리, VHS 등의 효과를 포함합니다. README는 이를 세부 사항에 대한 조기 집착, 빈 캔버스 증후군, 예술 피로를 방지하는 도구로 설명합니다.
- Voids: 노이즈 생성기나 다른 애플리케이션의 화면 공유 스트림 같은 외부 소스를 끌어오는 레이어로, 참조 및 하이브리드 워크플로에 유용합니다. Voids는 마스크와 블렌드 모드를 지원하며, 전용 Blender 확장이 존재합니다.
아키텍처 및 사용법:
- 핵심은 플랫폼 비종속적 Rust 크레이트인 darkly로, 문서 모델, 브러시 엔진, GPU 합성기, 실행 취소 시스템을 포함하며 wgpu가 실행되는 모든 곳(Vulkan, Metal, DX12, 브라우저의 WebGPU)에서 작동합니다.
- 배포되는 앱은 WebAssembly 브리지를 통해 해당 크레이트 위에 구축된 Svelte 프론트엔드입니다.
- 빌드에는 Rust stable, Node.js 22 이상, make, binaryen의 wasm-opt가 필요합니다. WebGPU를 지원하는 브라우저가 필요합니다(Chrome 113+, Edge 113+, 또는 플래그가 있는 Firefox Nightly). Linux에서는 Chromium에 Vulkan 및 안전하지 않은 WebGPU 플래그를 활성화해야 할 수 있습니다.
- 개발자는 cargo add darkly로 크레이트를 추가하고 README와 API 문서에서 실행 가능한 예제를 확인할 수 있습니다.
프로젝트는 베타 단계이며, 구현 및 계획된 기능의 공개 로드맵이 있습니다. 기여는 환영합니다. README는 AI 지원 코딩은 허용되지만 부주의한 바이브 코딩은 금지되며, 모든 PR에는 인간이 작성한 근거가 필요하고, Darkly 내 생성형 AI 기능은 완전히 오프라인으로 실행되고 제3자 API 없이 작동하며 아티스트의 제어를 보존하지 않는 한 수락될 가능성이 낮다고 명시합니다. README는 또한 GIMP, Krita, Graphite를 영향으로 언급하며, 일부 veil 및 void 셰이더는 Shadertoy 작품의 포트 또는 각색이라고 밝힙니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.