factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
A map viewer for Cities: Skylines
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Turn your Cities: Skylines city into a map worth keeping.
A modern, cross-platform viewer for exploring, understanding and sharing your city.
For players: open a .cslmap export and explore your city as a real interactive map.
For contributors: help build the open-source cartographic toolkit that Cities: Skylines has been missing.
Cities: Skylines lets you build entire worlds. Vellum gives those worlds a second life outside the game: a native desktop experience for exploring terrain, roads, transit, buildings, forests and districts as coherent, layered maps.README 전문 보기 ↗Vellum comes in two pieces. Vellum Bridge exports, Vellum explores.
| In the game: Vellum Bridge | On your desktop: Vellum |
|---|---|
A Cities: Skylines mod that writes your city to a .vellummap file when you ask it to. | A map viewer for Windows, macOS and Linux that opens that file. |
| Acts only on your keypress and never touches the network. | Runs locally. No account, no upload, no server between you and it. |
.vellummap to Vellum Bridge/<your city>/, inside Documents on Windows and your home folder on macOS and Linux.A .vellummap carries what older formats cannot: street names, district population and jobs, renamed and unique buildings, and stations that group every stop they serve.
[!TIP] Already have exports from CSL Map View? Vellum still opens
.cslmapfiles and keeps its three classic styles, so your existing maps keep working.
| Platform | Where | Notes |
|---|---|---|
| Windows | Microsoft Store | Recommended. The Store keeps Vellum up to date. |
| Windows | GitHub Releases | Standalone .exe installer, or .msi for managed setups. |
| macOS | GitHub Releases | .dmg. Not notarized by Apple: see the notes below. |
| Linux | GitHub Releases | .AppImage, plus .deb and .rpm packages. |
.exe and .msi installers are not Authenticode-signed and may show an unknown-publisher warning; check each release's signing-evidence.md. The .msi offers an opt-in .cslmap file association. The Store package is signed by Microsoft..dmg and move Vellum to Applications. Vellum is not signed or notarized, so if Gatekeeper blocks it, clear quarantine once with xattr -cr /Applications/Vellum.app..AppImage executable and run it.What each platform gets and what its signing state means: Packaging and installers · Empaquetado e instaladores.
| Read the transit network | …or as a schematic diagram |
|---|---|
| Inspect districts and streets | Export a print-ready plate |
.vellumstyle. Press H for clean mode.[!NOTE] Your city stays yours. Vellum works offline on your machine and needs no account. The manifesto explains why that matters.
Vellum 1.0 is the map I wanted to build. Some ideas being explored for later, with no dates attached:
Have a city that breaks Vellum, or an idea that would help you read yours? Open an issue.
Vellum is open source under the MIT license, and contributions of every size are welcome: rendering quality, parser resilience, themes, documentation, or a well-described issue. Please read CONTRIBUTING.md before opening a pull request. For security issues, use SECURITY.md; for community expectations, see CODE_OF_CONDUCT.md.
You do not need Cities: Skylines or your own save to try the development build. The repository includes real city fixtures.
git clone https://github.com/sebas-tcotd/vellum.git
cd vellum
pnpm install
pnpm dev
Drop altavento.cslmap or aurelia-del-delta.cslmap onto the app window.
| Tool | Version |
|---|---|
| Node.js | 20 |
| pnpm | 10.33.0 |
| Rust | 1.96.0 from rust-toolchain.toml |
| Tauri CLI | 2.x |
Before pnpm install or pnpm dev, install the Tauri 2 prerequisites for your operating system.
pnpm dev
pnpm build
pnpm lint
pnpm check:architecture
pnpm test
pnpm test:e2e
pnpm format:check
pnpm rust:fmt
pnpm rust:lint
pnpm rust:test
pnpm release:verify
Run a focused package test with:
pnpm --filter @vellum/renderer-webgl test
pnpm --filter @vellum/ui test -- MapLibreRoot.test.tsx
| Path | Purpose |
|---|---|
apps/desktop | Tauri shell, native commands and composition root |
packages/core | Domain types and IPC contract |
packages/parser-cslmap | .cslmap and .vellummap readers |
packages/renderer-webgl | Active MapLibre renderer |
packages/theme-engine | Theme loading, validation and style parameters |
packages/ui | React components and interaction layer |
tools/vellum-bridge | Cities: Skylines mod that exports .vellummap |
apps/landing | Project website on GitHub Pages |
docs | Technical documentation and design references |
docs/adr | Accepted architecture decision records |
Vellum began with a Canvas 2D renderer. As maps grew, CPU rendering hit a ceiling, and a focused spike proved that MapLibre GL JS and WebGL could deliver the experience. The pivot was possible because the domain model was separated from rendering from the start; the Canvas renderer was retired in ADR-0001. The package graph is one-directional, and pnpm check:architecture enforces it.
flowchart LR
G["Cities: Skylines + Vellum Bridge"] --> V[".vellummap"]
V --> B["Rust parser"]
A[".cslmap export"] --> B
B --> C["Immutable CityData"]
C --> D["MapLibre renderer"]
D --> E["React UI in Tauri"]
T["Theme engine"] --> D
graph TD
desktop["apps/desktop<br/>(composition root)"] --> ui
desktop --> parser
desktop --> renderer
desktop --> themes
desktop --> core
ui --> renderer
ui --> themes
ui --> core
parser --> core
renderer --> core
themes --> core
@vellum/core is the dependency-free domain and IPC layer. apps/desktop is the only composition root. The active MapLibreRoot still uses MapLibre-specific APIs at the UI boundary, so renderer interchangeability is a deliberate architectural direction rather than a claim that every edge is already abstracted.
.vellummap is a versioned, schema-validated city document that does not depend on the program that wrote it. Its contract lives in docs/es/vellummap-format.md.
Vellum is released under the MIT License.
Built for the Cities: Skylines community, compatible with the .cslmap format from CSL Map View, and powered by Tauri, Rust, React, MapLibre GL JS and Turborepo.
Cities shown in this README: Costa Tijuca by MatBarbosa and Pepper Lake by takkerue, from the Steam Workshop.
Created and maintained by Sebastian Vargas, with an emphasis on understanding before building, coherent systems and reducing friction without hiding complexity.