{"id":31601747,"url":"https://github.com/raphamorim/minecraftty","last_synced_at":"2025-10-06T07:59:22.319Z","repository":{"id":303388829,"uuid":"1015007272","full_name":"raphamorim/minecraftty","owner":"raphamorim","description":"Minecraft on your terminal","archived":false,"fork":false,"pushed_at":"2025-07-07T10:12:31.000Z","size":334,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-07T11:27:12.144Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphamorim.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-06T20:43:25.000Z","updated_at":"2025-07-07T10:12:34.000Z","dependencies_parsed_at":"2025-07-07T11:27:23.942Z","dependency_job_id":"a0ddb9cd-d2eb-47c0-a176-da64d3ff10ec","html_url":"https://github.com/raphamorim/minecraftty","commit_stats":null,"previous_names":["raphamorim/minecraftty"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raphamorim/minecraftty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphamorim%2Fminecraftty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphamorim%2Fminecraftty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphamorim%2Fminecraftty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphamorim%2Fminecraftty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphamorim","download_url":"https://codeload.github.com/raphamorim/minecraftty/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphamorim%2Fminecraftty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278577931,"owners_count":26009701,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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":[],"created_at":"2025-10-06T07:59:17.412Z","updated_at":"2025-10-06T07:59:22.311Z","avatar_url":"https://github.com/raphamorim.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MinecraftTTY\n\nA terminal-based 3D voxel renderer inspired by Minecraft, written in Rust using wgpu for GPU-accelerated rendering.\n\n![MinecraftTTY Demo](demo.png)\n\n## Features\n\n- **3D Voxel Rendering**: Real-time 3D block world rendering in your terminal\n- **GPU Acceleration**: Uses wgpu for hardware-accelerated graphics\n- **Terminal Graphics**: Renders using Unicode block characters (▀) with 24-bit color\n- **Texture Support**: Loads and displays block textures from PNG files\n- **Camera Controls**: WASD movement with mouse-look style controls\n- **Cross-Platform**: Works on macOS, Linux, and Windows\n- **High Resolution**: 2x supersampling for crisp visuals in terminal\n\n## Controls\n\n- **WASD** or **Arrow Keys**: Move around\n- **Q/E**: Move up/down\n- **H/L**: Look left/right\n- **J/K**: Look up/down\n- **X** or **Esc**: Exit\n\n## Installation\n\n### Prerequisites\n\n- Rust (latest stable)\n- Vulkan/Metal/DirectX compatible graphics drivers\n- A terminal with 24-bit color support\n\n### Building\n\n```bash\ngit clone https://github.com/raphamorim/minecraftty\ncd minecraftty\ncargo build --release\n```\n\n### Running\n\n```bash\ncargo run --release\n```\n\n## How It Works\n\nMinecraftTTY uses a unique approach to render 3D graphics in the terminal:\n\n1. **GPU Rendering**: Uses wgpu to render the 3D scene to an off-screen texture\n2. **Pixel Sampling**: Reads the rendered pixels back from the GPU\n3. **Terminal Mapping**: Maps pairs of pixels to Unicode \"▀\" characters\n4. **Color Encoding**: Uses ANSI 24-bit color codes for accurate color reproduction\n\nEach terminal character represents 2 vertical pixels:\n- **Foreground color**: Bottom pixel\n- **Background color**: Top pixel\n- **Character**: \"▀\" (upper half block)\n\nThis technique allows for surprisingly detailed 3D graphics in a text terminal.\n\n## Technical Details\n\n- **Renderer**: wgpu (WebGPU implementation)\n- **Math**: glam for linear algebra\n- **Noise**: Perlin noise for terrain generation\n- **Terminal**: crossterm for cross-platform terminal control\n- **Textures**: PNG texture atlas support\n\n## Performance\n\nThe renderer targets 30 FPS and automatically scales to your terminal size. For best performance:\n\n- Use a GPU with Vulkan/Metal/DirectX support\n- Ensure your terminal supports 24-bit color\n- Consider reducing terminal size for better frame rates\n\n## Inspiration\n\nThis project is inspired by and builds upon the work of [zacoons/minecraftty](https://codeberg.org/zacoons/minecraftty), originally written in Zig. This Rust implementation adds:\n\n- Texture support with PNG loading\n- Improved terminal rendering with synchronized updates\n- Enhanced camera controls\n- Cross-platform compatibility improvements\n- Higher resolution rendering with pixel averaging\n\n## Credits\n\n- **Original Concept**: [zacoons](https://codeberg.org/zacoons) for the original MinecraftTTY in Zig\n- **Inspiration**: The work shown in [this YouTube video](https://youtu.be/6zfXM-6yPJQ)\n- **Rust Implementation**: Enhanced and ported to Rust with additional features","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphamorim%2Fminecraftty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphamorim%2Fminecraftty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphamorim%2Fminecraftty/lists"}