{"id":15501603,"url":"https://github.com/shijbey/infiniforge","last_synced_at":"2025-04-22T23:05:51.929Z","repository":{"id":17718800,"uuid":"62722901","full_name":"ShiJbey/Infiniforge","owner":"ShiJbey","description":"Typescript library for procedurally generating 3D fantasy swords.","archived":false,"fork":false,"pushed_at":"2023-07-20T04:18:25.000Z","size":113846,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-14T05:11:03.902Z","etag":null,"topics":["3d-models","fantasy","game-development","gltf","mesh","pcg","procedural-generation","threejs","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/infiniforge","language":"TypeScript","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/ShiJbey.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2016-07-06T13:26:29.000Z","updated_at":"2023-09-17T03:15:35.000Z","dependencies_parsed_at":"2024-09-25T13:49:50.190Z","dependency_job_id":"143126a6-f6fd-47b0-81cb-423fa912b1ba","html_url":"https://github.com/ShiJbey/Infiniforge","commit_stats":{"total_commits":121,"total_committers":3,"mean_commits":"40.333333333333336","dds":0.2892561983471075,"last_synced_commit":"fd81608fa4f2285c2ce5ab16619ea875f58f3650"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiJbey%2FInfiniforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiJbey%2FInfiniforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiJbey%2FInfiniforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiJbey%2FInfiniforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShiJbey","download_url":"https://codeload.github.com/ShiJbey/Infiniforge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241864375,"owners_count":20033162,"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":["3d-models","fantasy","game-development","gltf","mesh","pcg","procedural-generation","threejs","typescript"],"created_at":"2024-10-02T09:04:59.959Z","updated_at":"2025-03-04T14:30:42.362Z","avatar_url":"https://github.com/ShiJbey.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Infiniforge\n\nTypeScript library for procedurally generating 3D fantasy swords using ThreeJS.\n\nThis project was originally made as part of the August 2016 Reddit procedural generation challenge\nFound here: [Reddit Challenge](https://www.reddit.com/r/proceduralgeneration/comments/4wubjy/monthly_challenge_9_august_2016_procedural_weapons/)\n\n## Installation\n\n```bash\nnpm install infiniforge\n```\n\nThis package has `three` and `lodash` as peer dependencies.\nSo, those will need to be installed too.\n\n## Usage\n\nThe code below imports the infiniforge library, generates\na new sword model and writes it to local disk as a `*.gltf`\nfile. The `generate` function takes a `SwordGenerationParams`\nobject that specifies fields that affect the generator's\nbehavior. Here we specify that we want the output to be\nglTF and we want the style of sword to be a long sword.\n\nPlease refer to [this typescript file](https://github.com/ShiJbey/Infiniforge/blob/develop/src/infiniforge/core/generators/sword/SwordGenerationParams.ts)\nfor the most comprehensive list of generator params.\n\n```javascript\n// Generate random sword and write it to a file\nconst fs = require(\"fs\");\nconst infiniforge = require(\"infiniforge\");\n\nconst swordGenerator = new infiniforge.SwordGenerator();\n\nswordGenerator\n  .generate({\n    output: \"gltf\",\n    style: \"long\",\n  })\n  .then((sword) =\u003e {\n    try {\n      fs.writeFileSync(\"sword.gltf\", JSON.stringify(sword));\n    } catch (err) {\n      console.error(err);\n    }\n  })\n  .catch(console.error);\n```\n\n## Building the Documentation\n\nThe documentation is generated using [Typedoc](https://typedoc.org):\n\n```bash\nnpm run build:docs\n```\n\n## Frequently asked questions\n\n### What is glTF?\n\nInfiniforge exports 3D meshes as JSON in the\nglTF 2.0 (GL Transmission Format ) by Khronos Group. It is a royalty-free\nspecification for the efficient transmission and loading of 3D scenes and\nmodels by applications. The spec is available [here](https://www.khronos.org/gltf/ \"glTF Overview\").\nThis application uses a modified version of the GLTFExporter provided\nwith [ThreeJS](https://threejs.org/docs/#examples/exporters/GLTFExporter).\n\n### What can I do with this?\n\nInfiniforge output can be saved as a \\*.gltf file and used in a multitude of projects. Various importers are\navailable from [Khronos Group](https://www.khronos.org/gltf/). For example, one could use this\nin a unity game by taking advantage of the [UnityGLTF plugin](https://github.com/KhronosGroup/UnityGLTF). Also, glTF files can also be opened on windows 10 using the 3D Viewer application.\n\n## References\n\n- [https://en.wikipedia.org/wiki/Longsword](https://en.wikipedia.org/wiki/Longsword)\n- [http://www.lordsandladies.org/middle-ages-weapons.htm](http://www.lordsandladies.org/middle-ages-weapons.htm)\n- [https://www.medievalswordsworld.com/](https://www.medievalswordsworld.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshijbey%2Finfiniforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshijbey%2Finfiniforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshijbey%2Finfiniforge/lists"}