{"id":13534408,"url":"https://github.com/danini-the-panini/mittsu","last_synced_at":"2025-04-04T14:06:22.863Z","repository":{"id":40710368,"uuid":"51142818","full_name":"danini-the-panini/mittsu","owner":"danini-the-panini","description":"3D Graphics Library for Ruby.","archived":false,"fork":false,"pushed_at":"2024-05-13T10:04:38.000Z","size":5643,"stargazers_count":503,"open_issues_count":19,"forks_count":33,"subscribers_count":18,"default_branch":"main","last_synced_at":"2024-05-20T15:57:53.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/danini-the-panini/mittsu","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danini-the-panini.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2016-02-05T11:27:36.000Z","updated_at":"2024-06-21T16:39:20.206Z","dependencies_parsed_at":"2024-02-28T11:46:58.861Z","dependency_job_id":"a39fa9cd-7266-4c82-88ec-3d13df0df653","html_url":"https://github.com/danini-the-panini/mittsu","commit_stats":null,"previous_names":["jellymann/mittsu"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danini-the-panini%2Fmittsu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danini-the-panini%2Fmittsu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danini-the-panini%2Fmittsu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danini-the-panini%2Fmittsu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danini-the-panini","download_url":"https://codeload.github.com/danini-the-panini/mittsu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190158,"owners_count":20898697,"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-01T07:01:32.394Z","updated_at":"2025-04-04T14:06:22.842Z","avatar_url":"https://github.com/danini-the-panini.png","language":"Ruby","funding_links":[],"categories":["Game Development and Graphics","Libraries"],"sub_categories":["Ruby"],"readme":"# Mittsu\n\n[![Gem Version](https://badge.fury.io/rb/mittsu.svg)](https://badge.fury.io/rb/mittsu)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/339a016dc2e7fc51c82a/test_coverage)](https://codeclimate.com/github/danini-the-panini/mittsu/test_coverage)\n[![Maintainability](https://api.codeclimate.com/v1/badges/339a016dc2e7fc51c82a/maintainability)](https://codeclimate.com/github/danini-the-panini/mittsu/maintainability)\n[![Build Status](https://github.com/danini-the-panini/mittsu/workflows/Build/badge.svg)](https://github.com/danini-the-panini/mittsu/actions?query=workflow%3A%22Build%22)\n\n3D Graphics Library for Ruby\n\nMittsu is a 3D Graphics Library for Ruby, based heavily on Three.js\n\n## GIFs!\n\n![Normal-mapped Earth](https://cloud.githubusercontent.com/assets/1171825/18411863/45328540-7781-11e6-986b-6e3f2551c719.gif)\n![Point Light](https://cloud.githubusercontent.com/assets/1171825/18411861/4531bb4c-7781-11e6-92b4-b6ebda60e2c9.gif)\n![Tank Demo](https://cloud.githubusercontent.com/assets/1171825/18411862/4531fe9a-7781-11e6-9665-b172df1a3645.gif)\n\n(You can find the source for the Tank Demo [here](https://github.com/danini-the-panini/mittsu-tank-demo))\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'mittsu'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install mittsu\n\n## Usage\n\nCreate a basic scene with a perspective camera and a green box:\n\n```ruby\nrequire 'mittsu'\n\nscene = Mittsu::Scene.new\n\ncamera = Mittsu::PerspectiveCamera.new(75.0, 1.0, 0.1, 1000.0)\ncamera.position.z = 5.0\n\nbox = Mittsu::Mesh.new(\n  Mittsu::BoxGeometry.new(1.0, 1.0, 1.0),\n  Mittsu::MeshBasicMaterial.new(color: 0x00ff00)\n)\n\nscene.add(box)\n```\n\n## More Resources\n\nMittsu follows a similar structure to THREE.js, so you can generally use [the same documentation](http://threejs.org/docs/) for a description of the various classes and how they work.\n\nIf you want to actually render scenes, you'll need a renderer. There is a reference OpenGL renderer [here](https://github.com/danini-the-panini/mittsu-opengl).\n\n## See also\n\n- [Tank Demo](https://github.com/danini-the-panini/mittsu-tank-demo)\n- [OpenGL Renderer](https://github.com/danini-the-panini/mittsu-opengl)\n- [Mesh Analysis](https://github.com/manyfold3d/mittsu-mesh_analysis)\n- [3MF Support](https://github.com/manyfold3d/mittsu-3mf)\n- [GLTF Support](https://github.com/manyfold3d/mittsu-gltf)\n\n## Where is Mittsu used?\n\n- [Manyfold](https://github.com/manyfold3d/manyfold) - A self-hosted digital asset manager for 3d print files.\n\n## Where you can help\n\n1. Testing!\n\n    Currently the only unit tests are for most of the maths library.\n\n2. Refactoring!\n\n    The code is unfortunately still a mess. Mittsu started out as a direct port of THREE.js, and JavaScript to Ruby is not an exact science.\n\n3. Find Bugs!\n\n    Mittsu is still very young, and there are plenty of small bugs and glitches that need to be ironed out. If you find a bug, create an issue so we can track it and squash it.\n\n4. Add all the features!\n\n    Some of the things I'd like to see ported from THREE.js include:\n\n    * Picking (clicking on 3D objects in a scene)\n    * Bone structure/animation (e.g. for character movements)\n    * Lens Flares! (for JJ Abrams)\n    * All the Extras and Helpers (who doesn't need extra help?)\n\n5. Write documentation!\n\n    You can use the same docs as THREE.js for now, but I would like to provide Mittsu-specific documentation so devs don't have to keep replacing `new THREE.Thing()` with `Mittsu::Thing.new`.\n\n## Contributing\n\n1. Fork it ( https://github.com/danini-the-panini/mittsu/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\nThank you for helping me help you help us all. ;)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanini-the-panini%2Fmittsu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanini-the-panini%2Fmittsu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanini-the-panini%2Fmittsu/lists"}