Skip to content

hpcreery/GRX

Repository files navigation

GRX

GPU-Accelerated Web Based EDA Manufacturing Artwork Viewer

preview

MENU: ABOUT | KEY FEATURES | GETTING STARTED | CONTRIBUTE


ABOUT

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.

KEY FEATURES

Main Features

  • 🚀 GPU-Accelerated
  • 🏃 Fast and Responsive
  • 👍 Easy to use
  • 🤏 Touchscreen Friendly
  • 🖥 Cross Platform and Available Everywhere

Supported Artwork Formats

  • Gerber RS-274X
    • X1
    • X2 ( coming soon! )
    • X3
  • NC
    • XNC ( attributes coming soon! )
    • IPC-NC-349
    • Excellon
    • Sieb & Meyer ( excellon version )
  • GDSII
  • ODB++
  • IPC-2581
  • DXF
  • OASIS

Tools

GETTING STARTED

Prerequisites:

  • Node.js (version 20 or higher)
  • pnpm (version 10 or higher)

Setup the project:

# Install dependencies
pnpm install

# Prepare the project (build packages, etc.)
pnpm prepare

Develop with Web Server:

# Run the development server
pnpm run dev

Develop with Desktop App (Electron):

# Run the development server
pnpm run dev:desktop

Perform Tests:

# Run tests
pnpm run test

Check (Lint/Format) and Typecheck:

# Run lint and format
pnpm run check
# Run typecheck
pnpm run typecheck

Build the Web App:

# Build the project
pnpm run build

Build the Desktop App:

# Build the desktop app
pnpm run build:desktop

Project Structure

├── apps
│   ├── viewer         <-- (main web and desktop app)
│   │   ├── src
│   │   └── package.json
│   ├── docs           <-- (documentation website)
│   │   ├── src
│   │   └── package.json
│   └── homepage       <-- (marketing website)
│       ├── src
│       └── package.json
├── packages
│   ├── engine         <-- (core rendering engine)
│   │   ├── src
│   │   └── package.json
│   └── parser-*       <-- (parser packages for different formats)
│       ├── src
│       └── package.json
├── biome.json
├── pnpm-workspace.yaml
├── turbo.json
└── README.md

CONTRIBUTE

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! :)

Buy Me A Coffee