Convert WAD levels from the 1993 id Software game, Doom, into OBJ 3D models.
Level geometry and textures are converted for the most part, but no attempt is made to support lights, objects, monsters, moving platforms/doors, etc.
- Install uv for fast Python package management
- No need to clone or download this repository. Uv will do it for you.
- Run
uvx --from http://github.com/jminor/wad2obj.git wad2obj -h
If that produces a helpful message, then you're good to go.
- Install uv for fast Python package management
- Clone the repository:
git clone https://github.com/jminor/wad2obj(or download the ZIP file) - In your terminal,
cdinto the folder wherewad2obj.pyis.
Now run make shareware or make freedoom to download, unzip, and convert E1M1 from one of those WAD files.
- Locate, or install, a recent version of Python.
- Download
wad2obj.py(use git, or GitHub's ZIP download button) - In your terminal,
cdinto the folder wherewad2obj.pyis. - run
pip3 install Pillow omgifol - then run
python3 wad2obj.py -h
The excellent and freely available Freedoom levels can be found here.
The original Shareware Doom, or full Doom, Doom 2, Heretic several other games which used a similar engine each contain WAD files.
There are loads of Doom mods out there as well, though many of them are only usable when combined with the original Doom WADs from the commercial game. wad2obj.py may or may not work on those.
First, you'll need to get a listing of which maps are present in your WAD file.
% uv run wad2obj /tmp/freedoom1.wad --list
Loading /tmp/freedoom1.wad...
Found 36 maps:
E1M1
E1M2
E1M3
E1M4
E1M5
E1M6
E1M7
...
Next, you can extract one, or several, maps like this. Note that wad2obj.py will output all the textures as well, so you want to send the output into a folder.
% uv run wad2obj /tmp/freedoom1.wad --maps E1M1 --center --output /tmp/freedoom_objs/
Loading /tmp/freedoom1.wad...
ERROR: Cannot find patch named 'TFOGF0' for texture_definition 'SLAD10'
ERROR: Cannot find patch named 'TFOGI0' for texture_definition 'SLAD10'
ERROR: Cannot find patch named 'TFOGF0' for texture_definition 'SLAD11'
ERROR: Cannot find patch named 'TFOGI0' for texture_definition 'SLAD11'
Found 1 maps matching pattern 'E1M1'
Writing E1M1.obj
This other project may be helpful if you want objects, doors, etc. https://bitbucket.org/freegodsoul/wad2unity/src/master/