MENU: ABOUT | KEY FEATURES | GETTING STARTED | CONTRIBUTE
GRX is designed to be an easy to use online manufacturing artwork data exchange viewer. Under the hood, GRX uses WebGL for rendering at the best performance and WebWorkers for parsing on multiple cores, even isolating the Main DOM thread from the WebGL renderer thread.
- π GPU-Accelerated
- π₯οΈ High DPI Support with adjustable FPS
- π Fast and Responsive
- π Easy to use
- π€ Touchscreen Friendly
- π» Cross Platform and Available Everywhere
- Gerber RS-274X
- X1
- X2
- X3
- NC
- XNC ( attributes coming soon! )
- IPC-NC-349 ( partial support )
- Excellon
- GDSII
- ODB++
- IPC-2581
- DXF
- OASIS
Prerequisites:
Setup the project:
# Install dependencies
pnpm install
# Prepare the project (build packages, etc.)
pnpm prepareDevelop with Web Server:
# Run the development server
pnpm run devDevelop with Desktop App (Electron):
# Run the development server
pnpm run dev:desktopPerform Tests:
# Run tests
pnpm run testCheck (Lint/Format) and Typecheck:
# Run lint and format
pnpm run check
# Run typecheck
pnpm run typecheckBuild the Web App:
# Build the project
pnpm run buildBuild the Desktop App:
# Build the desktop app
pnpm run build:desktopProject Structure
βββ apps
β βββ viewer <-- (main web and desktop app)
β β βββ src
β β βββ package.json
β βββ docs <-- (documentation website)
β β βββ src
β β βββ package.json
β βββ homepage <-- (marketing website)
β βββ src
β βββ package.json
βββ packages
β βββ artwork-format <-- (shared shape and symbol definitions)
β β βββ src
β β βββ package.json
β βββ engine <-- (core rendering engine)
β β βββ src
β β βββ package.json
β βββ importer-* <-- (importer packages for different formats)
β βββ src
β βββ package.json
βββ biome.json
βββ pnpm-workspace.yaml
βββ turbo.json
βββ README.md
Contributions are very welcome! Please open an issue or submit a pull request if you have any suggestions or improvements or if you just want to say hi! :)

