IP Library Granted Patent US 12,651,100
Granted Patent B2
US 12,651,100 · App. 17/774,805 · Granted Jun 9, 2026

Generating supports

Inventors: Jun Zeng (Palo Alto, CA); Paulo Bruno Serafim (Porto Alegre, BR); Alyne Gomes Soares Cantal (Porto Alegre, BR)
Assignee: Peridot Print LLC
G06F30/20B22F10/47B33Y50/00G05B19/4099G06F30/10B22F10/20B22F10/385B22F10/80G05B2219/49041G06F2113/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,651,100
App. No.
17/774,805
Granted
Jun 9, 2026
Kind
B2
Abstract

Examples of methods for generating supports are described herein. In some examples, a method includes determining a starting position from a set of voxels of a three-dimensional (3D) object model to be additively manufactured. In some examples, the method also includes generating a support for the 3D object model by traversing a cost field from the starting position.

Claims (59)

1 . A method comprising:

determining, by a processor, a set of starting position candidate voxels, as a subset of voxels of a three-dimensional (3D) object model for an object to be additively manufactured,

wherein the subset includes the voxels of the 3D object model that are to be supported by one or more support structures during additive manufacture of the object, and each starting position candidate voxel has a predicted displacement during additive manufacture;

culling, by the processor, the set of starting position candidate voxels by performing a process, such that the starting position candidate voxels that remain in the set after culling constitute starting position voxels,

wherein the process comprises iteratively removing any starting position candidate voxel from the set that is within a filtering radius of the starting position candidate voxel that has not been processed and that has a greatest predicted displacement, until no starting position candidate voxel remains in the set that has not been processed;

generating, by the processor, the one or more support structures by traversing a cost field from the starting position voxels; and

manufacturing the object with the generated one or more support structures.

2 . The method of claim 1 , wherein the voxels of the subset are on a lower surface of the 3D object model and do not contact a base of a build volume.

3 . The method of claim 1 , further comprising:

determining, by the processor, a support domain of voxels in a build volume.

4 . The method of claim 3 , further comprising:

determining, by the processor, the cost field by computing a distance from a base of the build volume for the voxels in the support domain.

5 . The method of claim 1 , wherein generating the one or more support structures comprises initializing a first node at each first starting position voxel.

6 . The method of claim 5 , further comprising:

determining, by the processor, whether to connect the first node with a second node.

7 . The method of claim 6 , further comprising:

determining, by the processor, whether to merge the first node with the second node in response to determining not to connect the first node with the second node.

8 . The method of claim 7 , wherein determining whether to merge the first node with the second node comprises:

determining whether an open position below the first node and the second node is within a joining distance;

determining whether merging sections are within a slope constraint; and

determining whether the merging sections do not collide with the 3D object model.

9 . A non-transitory machine-readable medium storing program code executable by a processor to perform processing comprising:

determining a set of starting position candidate voxels, as a subset of voxels of a three-dimensional (3D) object model for an object to be additively manufactured,

wherein the subset includes the voxels of the 3D object model that are to be supported by one or more support structures during additive manufacture of the object, and each starting position candidate voxel has a predicted displacement during additive manufacture;

culling the set of starting position candidate voxels by performing a process, such that the starting position candidate voxels that remain in the set after culling constitute starting position voxels,

wherein the process comprises iteratively removing any starting position candidate voxel from the set that is within a filtering radius of the starting position candidate voxel that has not been processed and that has a greatest predicted displacement, until no starting position candidate voxel remains in the set that has not been processed;

generating the one or more support structures by traversing a cost field from the starting position voxels; and

causing the object to be additively manufactured with the generated one or more support structures.

10 . The non-transitory machine-readable medium of claim 9 , wherein the voxels of the subset are on a lower surface of the 3D object model and do not contact a base of a build volume.

11 . The non-transitory machine-readable medium of claim 9 , wherein the processing further comprises:

determining a support domain of voxels in a build volume; and

determining the cost field by computing a distance from a base of the build volume for the voxels in the support domain.

12 . The non-transitory machine-readable medium of claim 9 , wherein generating the one or more support structures comprises initializing a first node at each starting position voxel, and the processing further comprises:

determining whether to connect the first node with a second node;

determining whether to merge the first node with the second node in response to determining not to connect the first node with the second node.

13 . The non-transitory machine-readable medium of claim 12 , wherein determining whether to merge the first node with the second node comprises:

determining whether an open position below the first node and the second node is within a joining distance;

determining whether merging sections are within a slope constraint; and

determining whether the merging sections do not collide with the 3D object model.

14 . An apparatus comprising:

a processor; and

a memory storing program code executable by the processor to perform processing comprising:

determining a set of starting position candidate voxels, as a subset of voxels of a three-dimensional (3D) object model for an object to be additively manufactured,

wherein the subset includes the voxels of the 3D object model that are to be supported by one or more support structures during additive manufacture of the object, and each starting position candidate voxel has a predicted displacement during additive manufacture;

culling the set of starting position candidate voxels by performing a process, such that the starting position candidate voxels that remain in the set after culling constitute starting position voxels,

wherein the process comprises iteratively removing any starting position candidate voxel from the set that is within a filtering radius of the starting position candidate voxel that has not been processed and that has a greatest predicted displacement, until no starting position candidate voxel remains in the set that has not been processed;

generating the one or more support structures by traversing a cost field from the starting position voxels; and

causing the object to be additively manufactured with the generated one or more support structures.

15 . The apparatus of claim 14 , wherein the voxels of the subset are on a lower surface of the 3D object model and do not contact a base of a build volume.

16 . The apparatus of claim 14 , wherein the processing further comprises:

determining a support domain of voxels in a build volume; and

determining the cost field by computing a distance from a base of the build volume for the voxels in the support domain.

17 . The apparatus of claim 14 , wherein generating the one or more support structures comprises initializing a first node at each starting position voxel, and the processing further comprises:

determining whether to connect the first node with a second node;

determining whether to merge the first node with the second node in response to determining not to connect the first node with the second node.

18 . The apparatus of claim 17 , wherein determining whether to merge the first node with the second node comprises:

determining whether an open position below the first node and the second node is within a joining distance;

determining whether merging sections are within a slope constraint; and

determining whether the merging sections do not collide with the 3D object model.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2025
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: PERIDOT PRINT LLC
Reel/Frame 070187/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2022
From: BRUNO SERAFIM, PAULO; GOMES SOARES CANTAL, ALYNE
To: INSTITUTO ATLÂNTICO
Reel/Frame 060113/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2022
From: ZENG, JUN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 060098/0561 →
Continuity (1)
Related Publication 20220379379A1 · Dec 1, 2022
References Cited (18)
US 9688024B2 · Stava · 2017 [cited by applicant]
US 9844917B2 · Burhop et al. · 2017 [cited by applicant]
US 10384263B2 · Craeghs et al. · 2019 [cited by applicant]
US 20090072447A1 · Hull · 2009 [cited by examiner]
US 20140303942A1 · Wighton · 2014 [cited by examiner]
US 20150066178A1 · Stava · 2015 [cited by examiner]
US 20150360421A1 · Burhop · 2015 [cited by examiner]
US 20170176979A1 · Lalish et al. · 2017 [cited by applicant]
US 20180056594A1 · Sterenthal et al. · 2018 [cited by applicant]
US 20180065311A1 · Lefebvre et al. · 2018 [cited by applicant]
US 20180111320A1 · Zhao · 2018 [cited by examiner]
US 20180311897A1 · Arnon et al. · 2018 [cited by applicant]
US 20180373227A1 · Sadusk · 2018 [cited by examiner]
US 20200111265A1 · Johansson · 2020 [cited by examiner]
US 20200122402A1 · Yang · 2020 [cited by examiner]
CN 109624326A · 2019 [cited by applicant]
WO 2017147412A1 · 2017 [cited by applicant]
WO 2018017082A1 · 2018 [cited by applicant]