Yarn-level Cloth Models

This page contains yarn-level cloth models I prepared. The files are in the BCC (Binary Curve Collection) file format I designed for these models (see below for detailed description). I created these models as a part of my research work on Stitch Meshes.

Many thanks to Alexander Tomchuk, Rune Spaans, and Christer Sveen, who prepared the initial 3D models. I couldn't have prepared these models without their help.

I would also like to acknowlege my student Kui Wu, who rescued these models from an extremely inefficient file format that we had originally used and helped me convert them into a much more efficient binary file format, BCC. A detailed description of the BCC file format is given below.

Finally, I would like to thank Matthias Müller for providing the OBJ versions of these models. The OBJ files contain quad strips. The first two vertices of each quad form the corresponding line segment and the other two vertices complete the quad. Therefore, they have twice as many vertices than the BBC files, but they can be opened with a variety of software applications.

Alien Sweater

alien_sweater.bcc
alien_sweater.obj
Curve count:146
Yarn vertices:137,528
Yarn-level model by Cem Yuksel. Cloth surface by Rune Spaans. Alien character model by Christer Sveen.
Alien Sweater Cables

alien_sweater_cables.bcc
alien_sweater_cables.obj
Curve count:146
Yarn vertices:142,654
Yarn-level model by Cem Yuksel. Cloth surface by Rune Spaans. Alien character model by Christer Sveen.
Dress1

dress1.bcc
dress1.obj
Curve count:329
Yarn vertices:756,648
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk
Dress2

dress2.bcc
dress2.obj
Curve count:316
Yarn vertices:796,727
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk
Sweater Flame Ribbing

sweater_flame_ribbing.bcc
sweater_flame_ribbing.obj
Curve count:253
Yarn vertices:271,978
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk
Glove

glove.bcc
glove.obj
Curve count:70
Yarn vertices:58,545
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk
Sheep Sweater

sheep_sweater.bcc
sheep_sweater.obj
Curve count:549
Yarn vertices:729,767
Yarn-level model by Cem Yuksel. Cloth surface and sheep model by Rune Spaans.
Tea Cozy

tea_cozy.bcc
tea_cozy.obj
Curve count:22
Yarn vertices:184,159
Yarn-level model by Cem Yuksel.
Cable Work Pattern

cable_work_pattern.bcc
cable_work_pattern.obj
Curve count:8
Yarn vertices:130,083
Yarn-level model by Cem Yuksel.
Flame Ribbing Pattern

flame_ribbing_pattern.bcc
flame_ribbing_pattern.obj
Curve count:1
Yarn vertices:49,745
Yarn-level model by Cem Yuksel.
Openwork Trellis Pattern

openwork_trellis_pattern.bcc
openwork_trellis_pattern.obj
Curve count:1
Yarn vertices:19,730
Yarn-level model by Cem Yuksel.

Terms of Use

You may freely download and use the model files provided above for your personal or research projects. If you include any material (such as images, videos, or any other visual or numerical data) that you produce using these files in any public document (such as a web page, publication, technical report, a software release or documentation, or any other public document), you are expected to indicate where these models are obtained by placing a link to this web page:
http://www.cemyuksel.com/research/yarnmodels

Also, you are also expected to cite the following papers:

  1. Cem Yuksel, Jonathan M. Kaldor, Doug L. James, Steve Marschner, Stitch Meshes for Modeling Knitted Clothing with Yarn-level Detail, ACM Transactions on Graphics (Proceedings of SIGGRAPH 2012), 31, 3, 2012
    The yarn-level cloth models were prepared as a part of my research efforts for this paper, and they are generated using the methods described in this paper.
  2. Kui Wu, Cem Yuksel, Real-time Fiber-level Cloth Rendering, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D 2017).
    The work for this paper allowed us to convert these models into a convenient file format provided here.

BCC File Format Specification

BCC stands for "Binary Curve Collection" format. This is an extremely simple file format that includes a 64-byte long header. The numbers use little-endian convention of x86.

BCC File Header (64 Bytes)

Bytes 0-2 Must be "BCC" in ascii code (42 43 43).
Byte 3 Indicates precision. It should be 44 in hexadecimal for these files, indicating 4-byte integers and 4-byte floats.
Bytes 4-5 The curve format. It is "C0" for the files in this page, indicating Catmull-Rom curves with uniform parameterization.
Byte 6 The number of dimensions. It is 3 for these files.
Byte 7 The dimension that corresponds to the up direction. It is either 1 or 2 (y or z directions) for these files.
Bytes 8-15 Total number of curves as a 64-bit unsigned integer (uint64_t).
Bytes 16-23 Total number of control points as a 64-bit unsigned integer (uint64_t).
Bytes 24-63 File information as char array of size 40 in ascii.

The rest of the file contains the data block. The data block consists of entries for each curve. Each curve entry begins with an integer indicating the number of control points for the curve, followed by the x, y, and z coordinates of each control point. If the number of control points is negative, it indicates that the curve represents a closed loop. Otherwise, the first and last control points indicate the first and last points of the curve.

cyCodeBase includes a simple tutorial for loading BCC files.