Infiniforge

How to Play

You can use your mouse or two fingers to pan-around, zoom, and move the 3D model.

About The Game

I started designing this project in 2016. At the time, I was heavily interested in both blacksmithing and procedural generation. I didn't know anything about computer graphics or PCG when I started. So, this project served as my introduction to both of those. Over the past three years, this project has helped me to grow more as a programmer. I continue to add to Infiniforge, even though it was to be submitted for the August 2016 /procedural_generation subreddit challenge. Infiniforge is a NodeJS module that generates and exports 3D meshes (using ThreeJs) as glTF JSON. The models can be imported into Unity or other software that supports the format.
This project went through many past iterations. The first working demo used Blender python scripts to generate 3D geometry in Blender. However, I eventually removed Blender from the system and moved the geometry generation to JavaScript/Typescript. This new approach greatly reduced the dependencies needed to run the application.
The edges of the sword are generated by modifying a spline and then sampling the spline at different resolutions. Moreover, I created a special web tool for creating and editing the blade cross-sections used during generation.
All code is available on GitHub. The demo above lets people get a feel for the output before downloading Infiniforge from npm. Feel free to play with the different generation parameters. If you find a sword you like, export it as glTF. You could even 3D print the model (after some rescaling).

Updates

November 2020

  • Revised controls
  • Uses Infiniforge 2.0 release

August 2019

  • Removed old crafting game
  • Users now have access to all the parameters used to make blades!

April 2018

  • New UI
  • Items! Players can now smelt and Forge using items in their inventory!
  • Fixed pseudo randomness of generation process

March 2018

  • UI updates