Skip to content

daleathan/Patternfy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Patternfy

Video Game Plushie

Patternfy is a script that transforms the textures from one OBJ to another, given two OBJs with the same vertexes and faces, but different UVs.

It can be used for pattern drafting, (creating printable fabric patterns), if the OBJs represent the final sewed object, UVs represent the sewing pattern, and the textures represent the fabric print.

I created this script to turn 3D models (extracted from video games) into stuffed animals, with a procedurally generated sewing pattern that preserves the model's original shape and coloration.

For examples/tutorials see MAKE magazine Vol 38 - DIY Video Game Plushies from 3D Models.

Credits

Created by Jenny - CaretDashCaret

Jenny

License

Patternfy's code is under GPLv3. A copy of GPLv3 can be found at http://opensource.org/licenses/gpl-3.0.html.

Patternfy's art assets are under Creative Commons Attribution-ShareAlike 3.0. A copy of the license can be found at http://creativecommons.org/licenses/by-sa/3.0/.

Development Environment

It's generally cleaner to set up a development environment. However, you can skip straight to the Run section. Setting up an environment requires virtualenv. Directories may vary depending on operating system.

$ virtualenv ~/.virtualenvs/patternfy
$ . ~/.virtualenvs/patternfy/bin/activate
$ pip install -r requirements.txt

The requirements.txt contains numpy for solving matrices, Pillow for PIL, and nose for testing.

To Run

Running requires Python 2.7, PIL, and numpy.

Pass the appropriate arguments into run.py from the command line.

$ python run.py -g "objects/original.obj" -m "objects/modified.obj" -t "objects/original_texture.png" -s "objects/output.png"

$ Patternfy - 2014-03-30 17:13:40,715 - loading texture
$ Patternfy - 2014-03-30 17:13:40,741 - loading original OBJ
$ Patternfy - 2014-03-30 17:13:40,742 - loading modified OBJ
$ Patternfy - 2014-03-30 17:13:40,742 - seam equilizing
$ Patternfy - 2014-03-30 17:13:40,743 - transforming image
$ Patternfy - 2014-03-30 17:13:41,106 - saving
$ Patternfy - 2014-03-30 17:13:41,408 - success
  • -g or --original is the original 3D obj model
  • -m or --modified is the 3D obj model with modified UVs
  • -t or --texture is a png of the original texture of the 3D model
  • -s or --save is the name to save the output image as

The objects/output.png should be the same as the objects/expected_output.png.

Testing

Running the tests requires nose.

$ nosetests

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%