<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged" -->

---
title: GTA.js, a reimplementation of the 1997 Grand Theft Auto...
description: A side project reimplements the 1997 Grand Theft Auto engine in JavaScript and WebGL, playable at gtajs.wtf. It's a reimplementation, not a DOSBox wrapper,...
canonical: https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GTA.js, a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL | daily.dev
og:description: A side project reimplements the 1997 Grand Theft Auto engine in JavaScript and WebGL, playable at gtajs.wtf. It's a reimplementation, not a DOSBox wrapper,...
og:url: https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged
og:image: https://api.daily.dev/og/posts/YSmb4JgEd.png
og:image:alt: GTA.js, a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GTA.js, a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL

**[Bram.us](https://daily.dev/sources/bram)** · 1 min read · 319 upvotes · 21 comments

## Summary

A side project reimplements the 1997 Grand Theft Auto engine in JavaScript and WebGL, playable at gtajs.wtf. It's a reimplementation, not a DOSBox wrapper, emulator or decompile, so there are differences in certain physics behaviors and animations from the original. The mission engine is accurate, as it is publicly documented via mtd.doc. Gemini was asked to implement most things, referring to open source reimplementations, public docs and community notes, or the author's memory of the game. Cops are still missing, but the game is already playable.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.bram.us/2026/10/22/gta-js>

## Questions this post answers

### Is there a way to play the original 1997 Grand Theft Auto in a browser using JavaScript and WebGL?

Yes, a reimplementation called GTA.js recreates the 1997 Grand Theft Auto engine in JavaScript and WebGL, playable at gtajs.wtf. It is not a DOSBox wrapper, emulator, or decompile, so some physics and animations differ from the original game. The mission engine is accurate because it is based on the publicly documented mtd.doc format. Cops are not yet implemented, but the game is already playable.

_daily.dev surfaces projects like this for developers tracking what's possible with browser game engines._

### How was the GTA.js browser reimplementation of Grand Theft Auto built?

Gemini implemented most of the code, guided by references to existing open source reimplementations, public documentation like mtd.doc, community notes, and the developer's own memory of playing and modding the original game. The mission engine specifically relies on the documented mtd.doc format for accuracy, while other systems like physics and animation were approximated rather than exactly replicated.

_developers weighing AI-assisted builds for complex reverse-engineering projects can follow examples like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@confidentcoding** · 24 upvotes

> OH GOD THE NOSTALGIA, ITS TOO MUCH

**@chrislozeau** · 16 upvotes

> Awesome work. Be great if it could support mobile touchscreens. Or in the meantime, inform you it doesn't support mobile, as I was tapping away wondering why it wasn't working despite the site being mobile friendly!

**@embolex** · 15 upvotes

> I would love to see that Baby get born

**@mornelandsberg** · 11 upvotes

> the radio was everything

**@mavros\_lykos** · 11 upvotes

> when an engineer get bored, You will see amazing stuffs !

## Similar posts on daily.dev

- [Grand Theft Auto: Vice City](https://daily.dev/posts/grand-theft-auto-vice-city-3l8himg5z) · Hacker News · 0 upvotes · 0 comments
- [GTA 1's Vehicle Physics Are Now Playable In Your Browser](https://daily.dev/posts/gta-1-s-vehicle-physics-are-now-playable-in-your-browser-idtor7r4o) · 80 LEVEL · 29 upvotes · 0 comments
- [2D Vehicles](https://daily.dev/posts/2d-vehicles-rfrc4pvxl) · Hacker News · 4 upvotes · 1 comments
- [Game Dev Without An Engine: The 2025/2026 Renaissance](https://daily.dev/posts/game-dev-without-an-engine-the-2025-2026-renaissance-pvy79vrpp) · SitePoint · 0 upvotes · 0 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#game-development](https://daily.dev/tags/game-development), [#ai-coding](https://daily.dev/tags/ai-coding), [#reverse-engineering](https://daily.dev/tags/reverse-engineering), [#webgl](https://daily.dev/tags/webgl)

[View this post on daily.dev](https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"GTA.js, a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL","url":"https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged"},"datePublished":"2026-10-22T17:09:03.580Z","dateModified":"2026-10-22T17:42:16.448Z","description":"A side project reimplements the 1997 Grand Theft Auto engine in JavaScript and WebGL, playable at gtajs.wtf. It's a reimplementation, not a DOSBox wrapper,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b30b0f1e787ce67bbaf36dc8bc1f8f36?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b30b0f1e787ce67bbaf36dc8bc1f8f36?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Bram.us","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Bram.us","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/3db2116954be44df873ec24cf0e03d14","url":"https://daily.dev/sources/bram"},"commentCount":21,"discussionUrl":"https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":319},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":21}],"keywords":"javascript,game-development,ai-coding,reverse-engineering,webgl","timeRequired":"PT1M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Bram.us","item":"https://daily.dev/sources/bram"},{"@type":"ListItem","position":3,"name":"GTA.js, a reimplementation of the 1997 Grand Theft Auto engine in JavaScript and WebGL"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged","comment":[{"@type":"Comment","text":"OH GOD THE NOSTALGIA, ITS TOO MUCH","datePublished":"2026-10-22T17:49:34.582Z","url":"https://daily.dev/posts/YSmb4JgEd#c-7nETlijBk","author":{"@type":"Person","name":"Lars Faye | Confident Coding","url":"https://daily.dev/confidentcoding","image":"https://media.daily.dev/image/upload/s--OGZu5DEc--/f_auto/v1772569630/avatars/avatar_umWZ9aQAng34qk5aaJl2q?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":24}},{"@type":"Comment","text":"Awesome work. Be great if it could support mobile touchscreens. Or in the meantime, inform you it doesn’t support mobile, as I was tapping away wondering why it wasn’t working despite the site being mobile friendly!","datePublished":"2026-10-23T13:23:28.225Z","url":"https://daily.dev/posts/YSmb4JgEd#c-CuQD6Ab90","author":{"@type":"Person","name":"Chris Lozeau","url":"https://daily.dev/chrislozeau","image":"https://lh3.googleusercontent.com/a/ACg8ocIgtXKdozSAbSYcHV2GEy9fph7BBYiZbTLkbmwCSI5YFac3H5BBMA=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":16}},{"@type":"Comment","text":"I would love to see that Baby get born","datePublished":"2026-10-22T22:55:58.923Z","url":"https://daily.dev/posts/YSmb4JgEd#c-NRbiwJTpP","author":{"@type":"Person","name":"Rick Kühnreich","url":"https://daily.dev/embolex","image":"https://lh3.googleusercontent.com/a/ACg8ocKzkJ-AWviyiaUvwEgbhxs3SvNBMQCr-79WI8IELYMnVess9A=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":15}},{"@type":"Comment","text":"the radio was everything","datePublished":"2026-10-23T13:49:15.667Z","url":"https://daily.dev/posts/YSmb4JgEd#c-JEZBBMiir","author":{"@type":"Person","name":"morne landsberg","url":"https://daily.dev/mornelandsberg","image":"https://lh3.googleusercontent.com/a/ACg8ocKVRBXpjgW1CBHEpdgUslh6eySyl_FEOs2aCrprI2nM79gk-aYN=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":11}},{"@type":"Comment","text":"when an engineer get bored, You will see amazing stuffs !","datePublished":"2026-10-24T07:41:03.593Z","url":"https://daily.dev/posts/YSmb4JgEd#c-eEbhI4zNN","author":{"@type":"Person","name":"Charaka Hashan","url":"https://daily.dev/mavros_lykos","image":"https://media.daily.dev/image/upload/s--UhlNgzLT--/f_auto/v1786970273/avatars/avatar_rP15vFIdEPNpDSYMOi2AR?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":11}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/gta-js-a-reimplementation-of-the-1997-grand-theft-auto-engine-in-javascript-and-webgl-ysmb4jged#faq","mainEntity":[{"@type":"Question","name":"Is there a way to play the original 1997 Grand Theft Auto in a browser using JavaScript and WebGL?","acceptedAnswer":{"@type":"Answer","text":"Yes, a reimplementation called GTA.js recreates the 1997 Grand Theft Auto engine in JavaScript and WebGL, playable at gtajs.wtf. It is not a DOSBox wrapper, emulator, or decompile, so some physics and animations differ from the original game. The mission engine is accurate because it is based on the publicly documented mtd.doc format. Cops are not yet implemented, but the game is already playable. daily.dev surfaces projects like this for developers tracking what's possible with browser game engines."}},{"@type":"Question","name":"How was the GTA.js browser reimplementation of Grand Theft Auto built?","acceptedAnswer":{"@type":"Answer","text":"Gemini implemented most of the code, guided by references to existing open source reimplementations, public documentation like mtd.doc, community notes, and the developer's own memory of playing and modding the original game. The mission engine specifically relies on the documented mtd.doc format for accuracy, while other systems like physics and animation were approximated rather than exactly replicated. developers weighing AI-assisted builds for complex reverse-engineering projects can follow examples like this on daily.dev."}}]}
```

