{"id":33289526,"url":"https://github.com/glassesneo/zenithor","last_synced_at":"2026-06-13T04:32:04.780Z","repository":{"id":321327444,"uuid":"1072820837","full_name":"glassesneo/zenithor","owner":"glassesneo","description":"An Application Framework for Visual Computing","archived":false,"fork":false,"pushed_at":"2026-02-07T09:50:13.000Z","size":985,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2026-02-07T19:03:52.357Z","etag":null,"topics":["entity-component-system","game-development","game-engine","sokol-zig","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glassesneo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-09T09:00:19.000Z","updated_at":"2026-02-07T09:50:17.000Z","dependencies_parsed_at":"2025-10-29T04:22:51.088Z","dependency_job_id":"e9fa7ac9-9120-49b9-ba48-2655cd0e5a87","html_url":"https://github.com/glassesneo/zenithor","commit_stats":null,"previous_names":["glassesneo/zenithor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/glassesneo/zenithor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassesneo%2Fzenithor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassesneo%2Fzenithor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassesneo%2Fzenithor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassesneo%2Fzenithor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glassesneo","download_url":"https://codeload.github.com/glassesneo/zenithor/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassesneo%2Fzenithor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34272603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["entity-component-system","game-development","game-engine","sokol-zig","zig"],"created_at":"2025-11-17T22:01:31.394Z","updated_at":"2026-06-13T04:32:04.775Z","avatar_url":"https://github.com/glassesneo.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zenithor\n\nA 2D/3D Application Framework for Zig, backed by Sokol and Sparze ECS. Native and WebAssembly targets with compile-time plugin architecture.\n\n## Highlights\n\n- **Compile-time plugins**: Tuple-based plugin registration with automatic dependency expansion and builtin Transform/Rotation/Scale/Color.\n- **Zero-cost ECS**: [Sparze](https://github.com/glassesneo/sparze) provides queries, groups, and events with deterministic system scheduling.\n- **Cross-platform**: Sokol backends for OpenGL, OpenGL ES3, and WebGPU.\n- **Minimal batteries included**: Shapes2D, Shapes3D, Time, Input, ImGui, Asset, and Serialization plugins ready to drop in.\n- **Error-tolerant loop**: System and event handler failures become events instead of crashes (see `src/core/CLAUDE.md`).\n\n## Quick Start\n\n```bash\n# Run tests\nzig build test\n\n# Native examples\nzig build run-minimal_app       # Minimal app + plugin wiring\nzig build run-rendering_2d      # 2D rendering + layering\nzig build run-scene_3d          # 3D scene basics\n\n# WebAssembly build + local server\nzig build rendering_2d -Dtarget=wasm32-emscripten\nzig build serve-examples -Dtarget=wasm32-emscripten       # serve all WASM demos\nzig build serve-examples -Dtarget=wasm32-emscripten -Dfilesystem  # with IDBFS for serialization\n\n# Graphics backend override (default: -Dgl)\nzig build \u003ctarget\u003e -Dgl | -Dgles3 | -Dwgpu\n```\n\nMinimal app:\n\n```zig\nconst zenithor = @import(\"zenithor\");\nconst Shapes2DPlugin = @import(\"shapes2d_plugin\");\nconst Time = @import(\"time_plugin\");\nconst Input = @import(\"input_plugin\");\n\npub fn main() void {\n    zenithor.run(.{ Shapes2DPlugin, Time, Input }, .{\n        .window_config = .{\n            .width = 1280,\n            .height = 800,\n            .title = \"Zenithor\",\n            .fullscreen = false,\n            .high_dpi = true,\n        },\n    });\n}\n```\n\n## Examples\n\nAll examples are in `examples/` and can be built with `zig build \u003cname\u003e` or run with `zig build run-\u003cname\u003e`:\n\n- **minimal_app**: Minimal app + plugin wiring\n- **input_movement**: Input + time driven movement\n- **rendering_2d**: 2D rendering + layering\n- **scene_3d**: 3D scene basics\n- **custom_shader_3d**: Custom rim/Fresnel shader flow\n- **system_ordering**: System staging and ordering\n- **error_handling**: Event flow and error handling\n- **serialization**: Serialization round-trip\n- **imgui_overlay**: ImGui debug overlay\n- **sprite_rendering**: Sprite rendering with textures\n- **plugin_authoring**: Plugin authoring + Requires\n- **showcase_3d**: Comprehensive 3D showcase (demonstrates all features)\n\n## Plugin Catalog\n\n- **Shapes2D**: 2D Point/Line/Triangle/Rectangle/Circle rendering via Sokol GL.\n- **Shapes3D**: 3D Box/Sphere/Cylinder/Torus/Plane rendering with Blinn-Phong, PBR, and unlit shaders; optional Material component; Camera3D and Light3D resources.\n- **Time**: DeltaTime resource, FPS tracking.\n- **Input**: Mouse and Keyboard resources, event handlers.\n- **ImGui**: Dear ImGui frame setup/render submit, docking optional.\n- **Asset**: Asset loading, caching, and lifecycle management for textures.\n- **Sprite**: ECS-integrated 2D textured sprite rendering with sprite sheets and Z-depth ordering.\n- **Serialization**: Save/load game state, WASM filesystem support via `-Dfilesystem`.\n- **Builtin**: Transform, Rotation, Scale, and Color components always included.\n\n## Documentation\n\nComprehensive documentation with AI-first design for discoverability:\n\n- **[docs/PLUGIN_DEVELOPMENT.md](docs/PLUGIN_DEVELOPMENT.md)** - Step-by-step guide for creating plugins\n- **[docs/SYSTEM_ORDERING.md](docs/SYSTEM_ORDERING.md)** - System execution order, priority, and constraints\n- **[docs/APPLICATION_LIFECYCLE.md](docs/APPLICATION_LIFECYCLE.md)** - Internal flow of `zenithor.run()`\n- **[docs/WASM_DEVELOPMENT.md](docs/WASM_DEVELOPMENT.md)** - WebAssembly builds and deployment\n- **[CLAUDE.md](CLAUDE.md)** - Quick reference (commands, constraints, links)\n- **[src/core/CLAUDE.md](src/core/CLAUDE.md)** - Core engine internals\n- **Plugin docs**: Most plugins have a `CLAUDE.md` for quick reference\n\nThe codebase also includes extensive DocComments on public APIs with ubiquitous language tags for AI agent discoverability.\n\n## Directory Layout\n\n```\nsrc/root.zig            # Public API exports (with comprehensive DocComments)\nsrc/core/               # Engine core (application, builtin, scheduler)\nplugins/                # Standard plugins (renderer, shapes2d, shapes3d, time, input, imgui, asset, sprite, serialization)\nexamples/               # Example programs\ndocs/                   # Detailed documentation\nbuild.zig               # Build graph and plugin module wiring\n```\n\n## License\n\nLicensed under either of:\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n- MIT License ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglassesneo%2Fzenithor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglassesneo%2Fzenithor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglassesneo%2Fzenithor/lists"}