ahwootech/BRUTAL
- 출처
- GitHub
- 처음 오른 날
- 분야
- 기타
- GitHub 별 수
- 1,169
- 주 언어
- C#
외부 오픈소스 저장소를 소개하는 글입니다. HDATF 제품이 아닙니다.

무엇을 하나
BRUTAL은 게임이나 자체 게임 엔진을 만드는 Ahwoo의 C# 프레임워크입니다. README에 따르면 Kitten Space Agency는 이 위에서 바로 만들었고, Ludeon은 RimWorld를 Unity에서 옮기려고 이 위에 Waylith 엔진을 만들었습니다. 핵심은 C#에서 native API를 직접 부르는 interop 계층이며, 둘레에 unmanaged 메모리, 할당 없는 collection, 수학, job system, log, 현지화 기능이 있습니다. binding은 Vulkan, OpenGL, GLFW, SDL, Dear ImGui, FMOD, OpenAL, RakNet, Jolt, Box2D, shader compiler 등을 다루고, glTF 파일은 별도 C# 라이브러리가 읽습니다. 편집기, scene graph, renderer는 없고, 최상위 폴더 하나가 NuGet 패키지 하나라서 프로젝트는 필요한 것만 참조합니다. 시작하려면 Windows나 Linux의 .NET 10 SDK와 렌더링용 Vulkan 1.3 GPU가 필요하며, README의 첫 예제는 Core와 Glfw 패키지로 창을 엽니다. 프로젝트 파일, solution, 빌드 스크립트는 나올 예정이라 저장소는 읽기와 fork용이고, 빌드에는 NuGet 패키지를 씁니다. 라이선스는 MIT 기반이며 상업 게임에도 무료이고, 별도 상업 라이선스도 맺을 수 있습니다. 최종 사용자에게 배포하는 제품은 credits에 BRUTAL 저작권 고지를 넣고 NOTICE.txt를 함께 배포하며, 비영리나 그래픽 없는 제품 같은 면제 대상이 아니면 주 기능 전에 로고를 보여 줍니다. 라이선스는 아직 OSI 승인 신청 전이고 뉴질랜드 법을 따르며, FMOD 같은 제3자 구성요소는 각자의 라이선스를 따릅니다.
라이선스
자체 라이선스 표준이 아닌 자체 라이선스입니다. 재사용 전에 라이선스 파일을 직접 읽어야 합니다.
같은 분야 저장소
- nyacg/do-on-container
do-pool은 저장소 do-on-container에 있는 TypeScript 실험입니다. 같은 Cloudflare Durable Object 클래스를 진짜 Durable Object로 실행하거나, Cloudflare Containers 안의 workerd에 container당 수백 개씩 모아 실행합니다. 게임 loop, 접속 상태 표시, 외부 feed, 모델 응답을 기다리는 AI 에이전트처럼 깨어 있지만 하는 일이 적은데도 깨어 있는 시간만큼 요금을 내는 객체가 대상입니다. POST.md에서 이런 객체 1,000개의 한 달 비용은 pool 약 22달러, 진짜 Durable Object 약 4,050달러였고, 주로 hibernate하는 객체는 진짜 Durable Object가 맞다고 적습니다. placement 객체가 객체를 container에 배정하고 CPU와 연결 통계로 node 수를 조절하며, 바쁜 node의 객체를 여러 개씩 옮기고 배정마다 epoch로 낡은 이동을 막습니다. node마다 30초에 한 번 바뀐 객체 전부를 R2 segment 하나와 manifest로 쓰고, SIGTERM을 받으면 먼저 모두 저장합니다. 갑작스러운 장애에서는 최대 30초 분량의 쓰기를 잃을 수 있고, 글의 SIGKILL 시험에서는 10건 중 5건이, drain 시험에서는 10건 모두 남았습니다. container 위치는 고를 수 없으며, 글의 브라우저 측정에서 pool 왕복 시간은 약 80ms, 진짜 Durable Object는 약 20ms였습니다. 실행하려면 Cloudflare 계정과 API token, R2 bucket, linux/amd64 이미지를 빌드할 Docker가 필요하며, 상태 endpoint는 공개이고 관리 호출만 token을 요구합니다. 글은 초안으로 표시되어 있고, 저장소에는 라이선스 파일이 없으며, 데모는 실시간 커서와 Yjs 공동 편집기 두 가지입니다. - HeyPuter/everything
Everything은 상용 소프트웨어를 대신할 오픈소스 브라우저 앱을 모은 Puter Technologies(GitHub의 HeyPuter 조직)의 monorepo(여러 앱을 한 저장소에 담는 방식)입니다. README는 Office부터 AutoCAD까지 모든 독점 소프트웨어의 무료 대안을 다시 만드는 것을 목표로 하며, 확인한 commit 기준으로 스프레드시트, 할 일, 팀 채팅, CAD 같은 앱 50개를 9개 분류로 올립니다. src 아래 package.json이 있는 폴더(50개 가운데 49개)는 각각 자체 Vite 빌드를 가진 별도 웹 앱이며, 대부분 프런트엔드 프레임워크 없는 일반 JavaScript이고, 앱마다 Node.js와 npm으로 따로 설치하고 배포합니다. 백엔드는 Puter이며, 앱 페이지 49개 가운데 45개가 js.puter.com에서 Puter.js SDK를 불러 문서, 설정, 첨부 파일을 로그인한 사용자 본인의 Puter 클라우드에 저장합니다. Calendar README는 이를 사용자마다 데이터를 본인 계정에 저장하고 비용도 그 계정에 청구하는 user-pays 방식이라고 설명합니다. Puter 저장 공간은 계정마다 따로 관리되므로, Teamchat, Wiki 같은 앱의 공유 기능은 소유자 본인의 Puter 계정에 Puter worker를 배포하고 구성원은 그 worker를 거쳐 읽고 씁니다. 일부 앱은 사용자 계정의 Puter AI로 AI 기능을 더하며, 이메일 서명을 연락처로 바꾸기, 영수증 읽기, Claude 모델로 동작하는 Parametric 3D CAD 앱의 설계 도우미가 그 예입니다. 공개된 앱에서 데이터를 저장하려면 Puter 계정이 필요하고, 개발자는 메모리 안의 Puter mock 페이지나 개발 빌드에서만 동작하는 로컬 모드로 계정 없이 여러 앱을 써 볼 수 있습니다. 성숙도는 앱마다 달라, CAD, Legal, Parametric을 포함한 12개 앱은 스스로 alpha나 early alpha라고 밝히고 그중 몇 개는 데이터를 잃을 수 있다고 경고합니다. 계획과 현재도 달라, Assets 폴더에는 자산 관리 앱 README, 페이지 파일, 아이콘, 빌드 설정만 있고 Building Design 폴더에는 아이콘만 있으며, 앱 7개의 Try it 링크는 README에 없는 안내를 가리킵니다. 저장소는 2026-10-13에 만들어졌고 저작권자를 Puter Technologies로 둔 MIT 라이선스이며, SheetJS Community Edition(Apache-2.0) 같은 포함된 제3자 구성 요소는 각자의 라이선스를 따릅니다. Spreadsheet README는 운영 페이지가 페이지 조회와 4가지 사용 이벤트를 Plausible 분석으로 보내고, 이벤트 데이터에서 파일 내용과 계정 식별자는 빠진다고 적습니다. - chenglou/handwired
Handwired는 프로그램 논리를 신경망 형태로 쓰는 MIT 라이선스 TypeScript 프로젝트입니다. 프로그램은 32-bit 부동소수점 위의 고정된 연산 목록이며, 대부분 가중합과 ReLU 곱이고 0 또는 1로 맞추는 반올림과 표 읽기가 더해지며, 가중치는 학습 없이 사람이 적습니다. README는 일반 JavaScript를 신경망으로 바꾼다고 소개합니다. docs는 기존 JavaScript 소스를 바꾸는 도구는 없다고 밝히며, 프로그램은 Circuit에 연산을 덧붙이는 builder code로 씁니다. if-else는 두 분기를 모두 계산한 뒤 0이나 1인 값이 하나를 고르는 산술식이 되며, README는 이로써 프로그램 전체가 미분 가능하다고 하고 docs는 반올림과 표 읽기에 gradient 옵션을 따로 요구합니다. 프로그램은 cell로 된 Float32Array 하나를 읽고, host JavaScript가 입력을 써 넣어 평가를 실행한 뒤 다음 상태를 되돌려 쓰고 결과를 DOM에 그립니다. 프로그램은 CPU의 JavaScript에서 실행되며, JSON 검색 데모만 WebGPU shader로 바꿔 생성된 JSON 문서 100,000개를 키 입력마다 검색합니다. 데모는 프로그램 하나가 창 3개와 dock을 움직이는 HandwiredOS, 배치 신경망을 프로그램의 gradient로 학습한 사진 갤러리, JSON 검색 페이지입니다. 시작하려면 Bun이 필요하고(프로젝트가 시험한 버전은 1.4.3), bun install과 bun start로 데모 사이트를 열며 새 앱은 토글 스위치 template에서 시작합니다. lab 상태 문서는 코드 작성 순서에 따라 gradient가 달라지는 문제 같은 알려진 문제를 적고 있고, lab 폴더에는 예전 실험이 있습니다. - bherbruck/solidcraft
SolidCraft는 기계 부품을 설계하는 사람을 위해 Rust로 만든 매개변수 기반(parametric) 3D CAD 앱이며, 치수가 바뀌면 구속 조건이 걸린 스케치, 피처 타임라인, 매개변수가 모델을 다시 만듭니다. 이 앱은 조립품과 판금도 다루고, 설계는 .solidcraft 파일로 저장해 STEP AP242, STL, 로봇 시뮬레이터용 URDF 등으로 내보내며, STEP과 IGES 파일은 이후 피처를 쌓을 수 있는 기본 피처로 가져옵니다. 데스크톱 앱, 브라우저판, solidcraft-cli 도구, MCP 서버(AI 에이전트가 도구를 부르는 프로토콜)가 같은 명령 목록을 쓰며, MCP 서버는 창 없이(headless) 실행하거나 실행 중인 앱을 조작합니다. 이 서버가 다루는 파일은 기본으로 홈 폴더 안의 열린 설계 폴더, 복구 폴더, --allow-path로 준 폴더로 제한되고, --allow-any-path를 주면 이 제한이 풀립니다. Windows, macOS, Linux, 웹용 배포판이 있지만 다운로드 파일에 아직 서명이 없어 Windows와 macOS에서 처음 실행할 때 경고가 뜨고, 소스 빌드에는 Rust 1.95 이상이 필요합니다. 에이전트에서 쓰려면 MCP 클라이언트 설정에 solidcraft-cli mcp를 따로 추가해야 하며, 모델링, 편집, 점검용 Agent Skills 3개는 에이전트의 skills 폴더에 복사해 쓰는 선택 사항입니다. 점검 skill은 SolidCraft가 오류 없이 넘기는 문제로, 범위 제한이 없는 매개변수와 경고 한 줄만 남기고 잘못된 형상을 낼 수 있는 boolean 재시도를 적어 둡니다. README는 간단한 부품에 쓸 만한 초기 단계라고 설명하고, 자동 생성되는 기준 시험 문서는 공개 부품 81개 모두가 해석적 계산이나 FreeCAD로 구한 부피, 면적, 무게중심, bounding box와 맞는다고 보고합니다. README에는 76개 중 75개로 적혀 있으며, 이 확인은 측정한 값만 다루므로 형상과 작업 흐름 전체가 같은지는 아직 확인 전입니다. 한국어 화면 번역은 일부만 되어 있고, 웹판에 넣은 글꼴은 일본어용이라 브라우저에서 한글을 표시하는 일은 후속 작업으로 남아 있습니다. 저장소는 다른 Craft 앱을 공개하는 storytold 조직과 별개인 개인 계정 bherbruck에 있으며, 이번 조사에서 읽은 storytold README의 앱 목록에서 SolidCraft를 찾지 못해 공식 관계는 확인하지 못했습니다. 라이선스는 사용자가 고르는 MIT 또는 Apache-2.0(GitHub 표시는 Apache-2.0)이며, 형상 커널은 오픈소스 truck crate(Apache-2.0)를 바탕으로 합니다. - Saffsanity/sill
Sill은 Mac 앱과 iPhone, iPad 앱으로 된 Apache-2.0 라이선스 프로젝트로, Mac의 창 하나나 데스크톱 전체를 기기에 띄워 터치, 트랙패드, 키보드, Apple Pencil로 조작하게 합니다. Sill for Mac은 getsill.app에서 notarization(App Store 밖 배포용 Apple 검사)을 거친 무료 파일로 받고, Sill for iPhone and iPad는 App Store에서 무료로 받습니다. 기기가 창을 고르면 Sill for Mac이 ScreenCaptureKit으로 캡처하고 VideoToolbox로 HEVC 인코딩해 TCP 위 TLS 1.3으로 보내며, 캡처는 기기가 연결된 동안에만 실행됩니다. 인코더나 연결이 뒤처지면 Sill for Mac이 프레임을 쌓아 두는 대신 버리고, 기기는 디코딩한 프레임을 바로 보여 주어 화면을 최신으로 유지합니다. 탭, 클릭, 스크롤, 키, Apple Pencil 입력은 Accessibility 권한으로 Mac의 마우스와 키보드 이벤트가 되고, 세 손가락 제스처는 Mission Control 같은 기능을 실행합니다. 기기는 로컬 네트워크에서 Bonjour로 Mac을 찾거나 USB 케이블로 연결하며, 기본으로 꺼진 Remote Access는 페어링한 기기가 사용자 자신의 VPN이나 공유기 포트 포워딩(TCP 7455)으로 다른 네트워크에서도 접속하게 합니다. 기기마다 한 번 Mac에 뜬 QR 코드나 숫자 12개 코드로 페어링하고(케이블은 자동), 이후 연결은 그때 주고받은 key만 인정하며, Mac은 key와 기기 목록을 iCloud 동기화 없이 keychain에 둡니다. 계정과 중계 서버가 없고, 사용자 기기 밖으로 나가는 요청은 Sill for Mac이 하루 한 번 GitHub에 버전 번호를 보내는 업데이트 확인뿐이며, 이 확인은 끌 수 있습니다. Mac은 macOS 14 이상의 Apple silicon 기기여야 하고 Screen Recording과 Accessibility 권한이 필요하며, macOS 15 이상에서는 Local Network 권한도 필요합니다. iPhone과 iPad는 iOS 또는 iPadOS 17 이상에 Local Network와 카메라 권한을 줘야 하고, 소스 빌드에는 Xcode 27(iPhone, iPad 앱은 Xcode 27.1)이 필요합니다. 문서에 적힌 한계는 한 번에 창 하나나 데스크톱 하나만 보이는 점, Mac 소리 없이 화면만 보내는 점, 창 크기를 바꾸면 잠깐 검은 화면이 나오는 점, TCP라서 패킷을 잃으면 멈추는 점입니다. 문서는 또 Require pairing을 끄면 네트워크의 어느 기기든 접속할 수 있고(암호화는 유지), Sill for Mac 0.3.1 이하는 집 안 연결에 암호화와 페어링이 없었다고 적습니다.
Trendshift 순위 목록에 오른 저장소만 담았고, 목록은 후보를 찾는 데만 썼습니다. 순위 숫자는 옮기지 않았습니다. 설명과 라이선스, 별 수는 각 GitHub 저장소에서 확인했습니다. 해설은 우리의 판단입니다. 이 프로젝트들을 직접 시험한 것은 아니며, 상승 목록에 올랐다고 품질이 증명되지는 않습니다.