Q3Edit is a work-in-progress Quake III Arena map editor that runs entirely in
the browser with WebGL2. It supports editing .map files, brush and patch
geometry, entities, textures, terrain, and client-side BSP compilation.
- Four Radiant-style 2D and 3D editing viewports
- Brush, patch, clipping, CSG, vertex, terrain, and transform tools
- Entity editing and target/path visualization
- Local
.mapfile loading and saving - Browser-local PK3 management with ordering and enable/disable controls
- OpenArena textures by default, with optional retail Quake III PK3 files
- q3map compiled to WebAssembly for client-side BSP, VIS, and light stages
- ioquake3 compiled to WebAssembly for playing compiled maps in the editor
Q3Edit is under active development. Save important work frequently and keep
copies of your source .map files.
Requirements:
- Node.js 22 or newer
- A modern browser with WebGL2
curl,unzip, andshasumto prepare OpenArena assets- Git, CMake, and Emscripten 5.0.3 to build the WebAssembly tools
Install dependencies and prepare the default texture assets:
npm ci
npm run assets:openarenaStart the Vite development server:
npm run devThe OpenArena PK3 files are generated under public/openarena/ and ignored by
Git. Retail Quake III PK3 files are never part of the repository: users select
them from the editor, and Q3Edit stores them only in that browser.
Build the TypeScript/Vite application:
npm run buildBuild a complete deployable dist/, including q3map JavaScript and WebAssembly:
npm run build:releaseThe q3map port and its provenance are documented in
q3map-compiler/README.md.
The browser player uses a pinned, unmodified ioquake3 revision. Build and
source details are documented in public/ioquake3/SOURCE.md.
To build only the browser ioquake3 runtime for local development:
npm run build:ioq3The repository includes an AWS CloudFormation template for a private S3 bucket, CloudFront, ACM, and Route 53. The deploy script derives the bucket from the active AWS account and discovers the CloudFront distribution by domain alias.
AWS_PROFILE=your-profile npm run deployThe following environment variables override discovery when needed:
Q3EDIT_DOMAIN(default:q3edit.com)Q3EDIT_S3_BUCKETQ3EDIT_CLOUDFRONT_DISTRIBUTION_ID
The deploy script requires the generated OpenArena archives and runs the full release build before uploading.
Q3Edit is licensed under GPL-2.0-or-later. See LICENSE and
THIRD_PARTY_NOTICES.md.
The q3map compiler is derived from id Software's GPL source release, and the
browser player is built from ioquake3's GPL source. Quake III Arena retail game
data is not included. OpenArena default content is prepared from the upstream
OpenArena 0.8.8 release; its source and license information are in
public/openarena/OPENARENA.md.
Q3Edit is an independent community project and is not affiliated with or endorsed by id Software or Bethesda Softworks.
