{"id":13712875,"url":"https://github.com/winksaville/zig-3d-soft-engine","last_synced_at":"2026-01-29T05:09:02.081Z","repository":{"id":77462866,"uuid":"152833613","full_name":"winksaville/zig-3d-soft-engine","owner":"winksaville","description":"An attempt to create a 3D engine in software using zig.","archived":false,"fork":false,"pushed_at":"2019-03-05T22:41:22.000Z","size":564,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-13T23:32:41.081Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winksaville.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-10-13T04:05:19.000Z","updated_at":"2024-05-13T01:37:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"68f73a24-03f7-42f2-acc0-2940f61ba109","html_url":"https://github.com/winksaville/zig-3d-soft-engine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winksaville%2Fzig-3d-soft-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winksaville%2Fzig-3d-soft-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winksaville%2Fzig-3d-soft-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winksaville%2Fzig-3d-soft-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winksaville","download_url":"https://codeload.github.com/winksaville/zig-3d-soft-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252779111,"owners_count":21802885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T23:01:23.947Z","updated_at":"2026-01-29T05:09:02.038Z","avatar_url":"https://github.com/winksaville.png","language":"Zig","readme":"# 3D Soft engine written in zig\n\nThis is a first attempt by a person with no experience in\ncreating a 3D engine. So take everything you see with a\nhuge grain of salt. But if you have suggestions feel free to\nraise an issue, provide a PR or contact me.\n\nThe engine is based on David Rousset's [tutorial](https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/).\nPlus math3d from Andrew Kelly's [Tetris](https://github.com/andrewrk/tetris) with additions based on [SharpDx](https://github.com/sharpdx/SharpDX).\n\nAlso the backend for creating Windows and displaying bitmaps uses Marc Tiehuis's [sdl2](https://github.com/tiehuis/zig-sdl2)\nand the scribling code is based on Daniel D'Agostino [SDL2 Pixel Drawing tutorial](https://dzone.com/articles/sdl2-pixel-drawing)\nand the code is [here](https://bitbucket.org/dandago/gigilabs/src/6d0e98732ca84d7d2b6cc9099faa9f4ec548e103/Sdl2PixelDrawing/Sdl2PixelDrawing/main.cpp?at=master\u0026fileviewer=file-view-default).\n\n## Dependencies\n\nNeeds zig PR 1820: https://github.com/ziglang/zig/pull/1820 so `fn saturateCast` in zig-misc works\n\n* [Git Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)\n* [zig](https://ziglang.org/)\n* [SDL2](https://www.libsdl.org/)\n* [zig-sdl2](https://github.com/tiehuis/zig-sdl2) brought in as a submode and created by Marc TieHuis.\n\n## Checkout\n```\ngit clone --recurse-submodules https://github.com/winksaville/zig-3d-soft-engine\n```\n\n## Build\n```\nzig build\n```\n\n## Test individual components\n```\nzig test --test-filter \"camera\" src/camera.zig\nzig test --test-filter \"mesh\" src/mesh.zig\nzig test --test-filter \"inputEvents\" src/input_events.zig\nzig test --test-filter \"math3d\" src/math3d.zig\nzig test --test-filter \"window\" --library c --library SDL2 src/window.zig\n```\n\n## Run\n```\n./3d-soft-engine\n```\n","funding_links":[],"categories":["GUI","Multimedia \u0026 Graphics"],"sub_categories":["Graphics Library"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinksaville%2Fzig-3d-soft-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinksaville%2Fzig-3d-soft-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinksaville%2Fzig-3d-soft-engine/lists"}