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). These models were created as a part of my research work on Stitch Meshes and I couldn't have prepared these models without the help of my collaborators. 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.

Alien Sweater

alien_sweater.bcc

Curve type:Catmull-Rom (uniform)
File size:1.6 MB
Curve count:146
Vertex count: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

Curve type:Catmull-Rom (uniform)
File size:1.6 MB
Curve count:146
Vertex count:142,654
Yarn-level model by Cem Yuksel. Cloth surface by Rune Spaans. Alien character model by Christer Sveen.
Dress1

dress1.bcc

Curve type:Catmull-Rom (uniform)
File size:8.9 MB
Curve count:329
Vertex count:756,648
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk.
Dress2

dress2.bcc

Curve type:Catmull-Rom (uniform)
File size:9.3 MB
Curve count:316
Vertex count:796,727
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk.
Sweater Flame Ribbing

sweater_flame_ribbing.bcc

Curve type:Catmull-Rom (uniform)
File size:3.2 MB
Curve count:253
Vertex count:271,978
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk.
Glove

glove.bcc

Curve type:Catmull-Rom (uniform)
File size:0.7 MB
Curve count:70
Vertex count:58,545
Yarn-level model by Cem Yuksel. Cloth surface and character by Alexander Tomchuk.
Sheep Sweater

sheep_sweater.bcc

Curve type:Catmull-Rom (uniform)
File size:8.6 MB
Curve count:549
Vertex count:729,767
Yarn-level model by Cem Yuksel. Cloth surface and sheep model by Rune Spaans.
Tea Cozy

tea_cozy.bcc

Curve type:Catmull-Rom (uniform)
File size:1.5 MB
Curve count:22
Vertex count:184,159
Yarn-level model by Cem Yuksel.
Cable Work Pattern

cable_work_pattern.bcc

Curve type:Catmull-Rom (uniform)
File size:1.5 MB
Curve count:8
Vertex count:130,083
Yarn-level model by Cem Yuksel.
Flame Ribbing Pattern

flame_ribbing_pattern.bcc

Curve type:Catmull-Rom (uniform)
File size:0.6 MB
Curve count:1
Vertex count:49,745
Yarn-level model by Cem Yuksel.
Openwork Trellis Pattern

openwork_trellis_pattern.bcc

Curve type:Catmull-Rom (uniform)
File size:0.2 MB
Curve count:1
Vertex count: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.