# US 12,505,598 B1 · Hair editing techniques for animation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,505,598 B1
- Document ID: US12505598B1
- Status: Granted
- Kind: B1
- Application number: 18/223,699
- Filed: 2023-07-19
- Granted: 2025-12-23
- Earliest claimed: 2023-07-19
- Assignees: Pixar
- Applicants: Pixar
- Inventors: Fernando Ferrari de Goes; Brandon Montell; Jacob Brooks
- Web page: https://patentgrep.com/patent/US12505598B1

## CPC

- G06T 13/40: of characters, e.g. humans, animals or virtual beings
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 2210/36: Level of detail
- G06T 2210/56: Particle system, point based geometry or rendering
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Techniques for configuring hair for animation include obtaining a first representation of a set of hairs on a surface and a second representation of a subset of the hairs. At a vertex of the surface, an interpolated hair is generated by minimizing a difference between a shape of a first hair and the interpolated hair. An edit is received to modify the shape of the first hair. At the vertex, a modified interpolated hair is generated by minimizing the difference between the modified hair shape and the modified interpolated hair. The interpolated hair and the modified interpolated hair are projected onto a root of a second hair. Rotation parameters indicating a rotation and a scaling factor indicating a scale difference between the projected interpolated hair and the projected modified interpolated hair are computed. The rotation parameters and scaling factor are applied to the second hair to propagate the edit.

## Claims

### Claim 1

A method for configuring hair for animation, the method comprising performing, by a computer system:
obtaining a first representation of a set of hairs on a surface, wherein the surface comprises a mesh with vertices;
generating a second representation of a subset of the set of hairs;
at a vertex of the surface, generating an interpolated hair by minimizing a shape difference between a first hair of the subset of the hairs and the interpolated hair;
receiving an edit to modify a shape of the first hair to generate a modified hair;
at the vertex of the surface, generating a modified interpolated hair by minimizing the shape difference between the modified hair and the modified interpolated hair;
projecting the interpolated hair onto a root of a second hair of the set of hairs on the surface, thereby generating a projected interpolated hair;
projecting the modified interpolated hair onto the root of the second hair of the set of hairs on the surface, thereby generating a projected modified interpolated hair;
generating one or more rotation parameters indicating a rotation between the projected interpolated hair and the projected modified interpolated hair;
computing a scaling factor indicating a scale difference between the projected interpolated hair and the projected modified interpolated hair; and
applying the one or more rotation parameters and the scaling factor to the second hair of the set of hairs on the surface to propagate the edit to the second hair of the set of hairs on the surface.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
performing a simulation to animate the hair on the surface.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first representation of the set of hairs on the surface is of a subset of a full set of hairs on the surface, the method further comprising:
performing kernel interpolation to propagate the edit to the second hair of the set of hairs on the surface to one or more of the full set of hairs on the surface.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
before generating the interpolated hair, resampling the second representation of the subset of the hairs such that the hairs of the subset of the hairs have an equal number of points.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving, via a user interface, an indication of a percentage of the first representation of the set of hairs on the surface,
wherein generating the second representation of the subset of the hairs comprises sampling the percentage of the first representation of the set of hairs on the surface.

### Claim 6 (depends on 5)

The method of claim 5, wherein the edit to the first hair is further received via the user interface.

### Claim 7 (depends on 1)

The method of claim 1, wherein the one or more rotation parameters comprise a rotation matrix.

### Claim 8 (depends on 1)

The method of claim 1, wherein multiple hairs are interpolated concurrently.

### Claim 9 (depends on 1)

The method of claim 1, wherein the surface is curved.

### Claim 10 (depends on 1)

The method of claim 1, wherein minimizing the shape difference between the first hair of the subset of the hairs and the interpolated hair comprises minimizing a function of the vertices of the mesh and the shape of a plurality of hairs of the subset of the hairs, the plurality of hairs including the first hair.

### Claim 11

A system for configuring hair for animation, the system comprising one or more processors configured to:
obtain a first representation of a set of hairs on a surface, wherein the surface comprises a mesh with vertices;
generate a second representation of a subset of the set of hairs;
at a vertex of the surface, generate an interpolated hair by minimizing a shape difference between a first hair of the subset of the hairs and the interpolated hair;
receive an edit to modify a shape of the first hair to generate a modified hair;
at the vertex of the surface, generate a modified interpolated hair by minimizing the shape difference between the modified hair and the modified interpolated hair;
project the interpolated hair onto a root of a second hair of the set of hairs on the surface, thereby generating a projected interpolated hair;
project the modified interpolated hair onto the root of the second hair of the set of hairs on the surface, thereby generating a projected modified interpolated hair;
generate one or more rotation parameters indicating a rotation between the projected interpolated hair and the projected modified interpolated hair;
compute a scaling factor indicating a scale difference between the projected interpolated hair and the projected modified interpolated hair; and
apply the one or more rotation parameters and the scaling factor to the second hair of the set of hairs on the surface to propagate the edit to the second hair of the set of hairs on the surface.

### Claim 12 (depends on 11)

The system of claim 11, the one or more processors further configured to:
perform a simulation to animate the hair on the surface.

### Claim 13 (depends on 11)

The system of claim 11, wherein the first representation of the set of hairs on the surface is a subset of a full set of hairs on the surface, the one or more processors further configured to:
perform kernel interpolation to propagate the edit to the second hair of the set of hairs on the surface to one or more of the full set of hairs on the surface.

### Claim 14 (depends on 11)

The system of claim 11, the one or more processors further configured to:
before generating the interpolated hair, resample the second representation of the subset of the hairs such that the hairs of the subset of the hairs have an equal number of points.

### Claim 15 (depends on 11)

The system of claim 11, the one or more processors further configured to:
receive, via a user interface, an indication of a percentage of the first representation of the set of hairs on the surface,
wherein generating the second representation of the subset of the hairs comprises sampling the percentage of the first representation of the set of hairs on the surface.

### Claim 16 (depends on 15)

The system of claim 15, wherein the edit to the first hair is further received via the user interface.

### Claim 17 (depends on 11)

The system of claim 11, wherein the one or more rotation parameters comprise a rotation matrix.

### Claim 18 (depends on 11)

The system of claim 11, wherein multiple hairs are interpolated concurrently.

### Claim 19 (depends on 11)

The system of claim 11, wherein the surface is curved.

### Claim 20 (depends on 11)

The system of claim 11, wherein minimizing the shape difference between the first hair of the subset of the hairs and the interpolated hair comprises minimizing a function of the vertices of the mesh and the shape of a plurality of hairs of the subset of the hairs, the plurality of hairs including the first hair.
