Threedimensional threshold matrix for threedimensional halftoning

0Associated
Cases 
0Associated
Defendants 
0Accused
Products 
0Forward
Citations 
0
Petitions 
1
Assignment
First Claim
1. An apparatus to generate control data for production of a threedimensional object comprising:
 a processor; and
a nontransitory storage medium on which is stored instructions that are to cause the processor to;
apply a halftoning operation to a digital representation at least a portion of the threedimensional object, wherein the instructions are to cause to the processor to process the digital representation of at least the portion of the threedimensional object in association with a threedimensional threshold matrix to output discrete material arrangement instructions for at least one production material;
generate the threedimensional threshold matrix for use by the halftone generator, wherein to generate the threedimensional threshold matrix, the instructions are to cause the processor to;
obtain values for a predefined twodimensional threshold matrix; and
extend the predefined twodimensional threshold matrix into a third dimension to generate the threedimensional threshold matrix by laterally shifting, with respect to the third dimension and according to a defined sequence, at least a subset of the values in subsequent matrices in a set of twodimensional matrices with respect to the predefined twodimensional threshold matrix, each matrix in the set of twodimensional matrices comprising the at least a subset of the values for the predefined twodimensional threshold matrix,wherein the digital representation of at least the portion of the threedimensional object comprises at least one material volume coverage vector for at least one volume of the threedimensional object,wherein, for k materials available for production of the threedimensional object and L discrete deposit states for said materials, the at least one material coverage vector comprises L^{k }vector components, each vector component having an associated probability value, andwherein the discrete material arrangement instructions comprise production instructions from a set of L * k available instruction values, each element at a production resolution having one of L deposit state instructions for each of said k materials.
1 Assignment
0 Petitions
Accused Products
Abstract
Certain examples described herein relate to a threedimensional threshold matrix. The threedimensional threshold matrix may be used for threedimensional halftoning. In one example, values for a predefined twodimensional threshold matrix are shifted with respect to a third dimension to provide the threedimensional threshold matrix. In one example, the threedimensional threshold matrix may then be processed in association with a digital representation of a threedimensional object to output discrete material arrangement instructions for at least one production material. The instructions may be used to control an additive manufacturing system to produce the threedimensional object.
10 Citations
No References
IMAGE PROCESSING METHOD FOR THREEDIMENSIONAL PRINTING  
Patent #
US 20110249048A1
Filed 12/01/2009

Current Assignee
Agfa Nv

Sponsoring Entity
Agfa Graphics Nv

METHOD AND SYSTEM FOR BUILDING PAINTED THREEDIMENSIONAL OBJECTS  
Patent #
US 20100195122A1
Filed 02/03/2009

Current Assignee
Stratasys Incorporated

Sponsoring Entity
Objet Ltd.

Method for storing layers' information of a layersmade object  
Patent #
US 20060013471A1
Filed 03/17/2003

Current Assignee
CIMS Hong Kong Co. Limited

Sponsoring Entity
Camtek Limited

Uses of support material in solid freeform fabrication systems  
Patent #
US 20050072113A1
Filed 10/03/2003

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

Methods and systems for producing a desired apparent coloring in an object produced through rapid prototyping  
Patent #
US 20040080078A1
Filed 10/25/2002

Current Assignee
HewlettPackard Development Company L.P.

Sponsoring Entity
HewlettPackard Development Company L.P.

Method and apparatus for creating 3Dprints and a 3D printing system  
Patent #
US 20040183796A1
Filed 12/10/2003

Current Assignee
Agfa Nv

Sponsoring Entity
Agfa Graphics Nv

System and method for incremental fabrication of circuit boards  
Patent #
US 5,838,567 A
Filed 07/10/1996

Current Assignee
HP Inc.

Sponsoring Entity
HP Inc.

SOLID FREEFORM FABRICATION USING A PLURALITY OF MODELING MATERIALS  
Patent #
US 20130073068A1
Filed 11/15/2012

Current Assignee
Stratasys Incorporated

Sponsoring Entity
Stratasys Incorporated

FULL COLOR THREEDIMENSIONAL OBJECT FABRICATION  
Patent #
US 20140277661A1
Filed 06/05/2013

Current Assignee
Microsoft Technology Licensing LLC

Sponsoring Entity
Microsoft Technology Licensing LLC

THREE DIMENSIONAL (3D) PRINTER WITH NEAR INSTANTANEOUS OBJECT PRINTING USING A PHOTOCURING LIQUID  
Patent #
US 20160107380A1
Filed 10/21/2014

Current Assignee
Disney Enterprises Incorporated

Sponsoring Entity
Disney Enterprises Incorporated

7 Claims
 1. An apparatus to generate control data for production of a threedimensional object comprising:
a processor; and a nontransitory storage medium on which is stored instructions that are to cause the processor to; apply a halftoning operation to a digital representation at least a portion of the threedimensional object, wherein the instructions are to cause to the processor to process the digital representation of at least the portion of the threedimensional object in association with a threedimensional threshold matrix to output discrete material arrangement instructions for at least one production material; generate the threedimensional threshold matrix for use by the halftone generator, wherein to generate the threedimensional threshold matrix, the instructions are to cause the processor to; obtain values for a predefined twodimensional threshold matrix; and extend the predefined twodimensional threshold matrix into a third dimension to generate the threedimensional threshold matrix by laterally shifting, with respect to the third dimension and according to a defined sequence, at least a subset of the values in subsequent matrices in a set of twodimensional matrices with respect to the predefined twodimensional threshold matrix, each matrix in the set of twodimensional matrices comprising the at least a subset of the values for the predefined twodimensional threshold matrix, wherein the digital representation of at least the portion of the threedimensional object comprises at least one material volume coverage vector for at least one volume of the threedimensional object, wherein, for k materials available for production of the threedimensional object and L discrete deposit states for said materials, the at least one material coverage vector comprises L^{k }vector components, each vector component having an associated probability value, and wherein the discrete material arrangement instructions comprise production instructions from a set of L * k available instruction values, each element at a production resolution having one of L deposit state instructions for each of said k materials.  View Dependent Claims (2, 3, 4, 5, 6)
 7. An apparatus to generate control data for production of a threedimensional object comprising:
a processor; and a nontransitory storage medium on which is stored instructions that are to cause the processor to; apply a halftoning operation to a digital representation of at least a portion of the threedimensional object, wherein the instructions are to cause to the processor to process the digital representation of at least the portion of the threedimensional object in association with a threedimensional threshold matrix to output discrete material arrangement instructions for at least one production material; generate the threedimensional threshold matrix for use by the halftone generator, wherein to generate the threedimensional threshold matrix, the instructions are to cause the processor to; obtain values for a predefined twodimensional threshold matrix; and extend the predefined twodimensional threshold matrix into a third dimension to generate the threedimensional threshold matrix by laterallyshifting, with respect to the third dimension and according to a defined sequence, at least a subset of the values in subsequent matrices in a set of twodimensional matrices with respect to the predefined twodimensional threshold matrix, each matrix in the set of twodimensional matrices comprising the at least a subset of the values for the predefined twodimensional threshold matrix, wherein the instructions are further to cause the processor to determine lateral shift parameters for the set of twodimensional matrices based on a complementarity metric for at least one of the set of twodimensional matrices, and wherein the complementarity metric compares a production material placement associated with a given twodimensional matrix with a production material placement for matrices below the given twodimensional matrix in the set of twodimensional matrices.
1 Specification
The present application is a national stage filing under 35 U.S.C. § 371 of PCT application number PCT/US2015/026213, having an international filing date of Apr. 16, 2015, the disclosure of which is hereby incorporated by reference in its entirety.
Apparatus that generate threedimensional objects, including those commonly referred to as “3D printers”, have been proposed as a potentially convenient way to produce threedimensional objects. These apparatus typically receive a definition of the threedimensional object in the form of an object model. This object model is processed to instruct the apparatus to produce the object using one or more production materials. This may be performed on a layerbylayer basis. The processing of the object model may vary based on the type of apparatus and/or the production technology being implemented. Generating objects in threedimensions presents many challenges that are not present with twodimensional print apparatus.
Various features of the present disclosure will be apparent from the detailed description which follows, taken in conjunction with the accompanying drawings, which together illustrate, by way of example, features of the present disclosure, and wherein:
In the production of threedimensional objects, e.g. in socalled “3D printing”, there is a challenge to control the structure of generated objects. For example, it may be desired to produce objects with a variety of structural properties, which may influence, or be influenced by, material properties and/or mechanical properties of a produced object. There is also a desire to flexibly control the structure of produced objects. In certain cases, it may be desired to vary a structure of at least one part of an object model without having to redesign or regenerate the object model. For example, it may be desired to produce structural variations of a common object design, such as producing a first set of objects with one substructure and producing a second set of objects to the same design but with a different substructure. As may be appreciated, such considerations are not present with twodimensional printing.
Certain examples described herein enable a threedimensional matrix to be generated for use in a halftone thresholding operation. The threedimensional matrix in these examples is generated from a defined halftone matrix in twodimensions, e.g. a halftone threshold or screen matrix as may be applied for twodimensional halftoning. In these examples, the defined halftone matrix is distributed in threedimensions in a manner that enables threedimensional constraints to be applied. Values for the defined halftone matrix are used to generate a set of twodimensional matrices, e.g. submatrices in relation to the threedimensional matrix. These matrices or submatrices are then laterally shifted in a third dimension to generate the threedimensional matrix. The threedimensional matrix may then be applied to a digital representation of an object to be produced in a halftone thresholding operation to generate control data for use in producing the object. For example, the output of the halftone thresholding operation may comprise material arrangement instructions, e.g. deposit instructions, for an additive manufacturing system. By controlling the form of the threedimensional matrix used for thresholding, the threedimensional structure of a threedimensional object may be controlled. This allows design flexibility; the structure of the whole or a part of a threedimensional object may be modified by changing a defined sequence used to stack the submatrices. Additionally, features such as clustering of material placement, layertolayer overprinting, and a pathbased stacking of layers of the threedimensional object may be applied.
Certain examples described here enable a threedimensional object with a desired structure to be produced without modifying a substantial portion of an object processing pipeline. These examples also reduce the need for specific choices to be made during the design of the object, e.g. volumes or object models of the designed object need not exhibit the desired structure when the object is sent for production. This is achieved by allowing choices associated with at least one structure of the object to be made at a stage in an object processing pipeline after design yet before production of the object, e.g. such as when a designed object is submitted as a “3D print job”. In the case of an object design featuring a simple cube, this allows the same cube to be produced with, for example, any of the following: substructure that places defined materials close to each other; substructure that distributes a set of materials throughout an object; substructure that maximizes a connectivity of material portions from layer to layer; or substructure that minimizes a connectivity of material portions from layer to layer. In certain cases, a rasterized version of the object design that specifies material use for volumes of the object (voxels) is halftoned using a threedimensional matrix that is generated at or near production time based on a desired substructure. In particular, layers of the threedimensional matrix are shifted during generation of the matrix to allow this.
In the example of
In certain cases, the predefined twodimensional threshold matrix 160 comprises any suitable halftone or threshold matrix as used in twodimensional halftoning. The values within the predefined twodimensional threshold matrix 160 may span a range of predefined granularity, such as 12bit integer values ranging from 0 to 4095. However, any other range or granularity, such as integer or floating point numbers of 8bit, 9bit, 10bit, and others, may be used.
In one case, the apparatus 100 may be implemented as part of an additive manufacturing system, e.g. may comprise electronics or portions of an embedded controller for a “3D printer”. In another case, one or more portions of the apparatus 100 may be implemented using computer program code configured to be processed by one or more processors. These processors may form part of an additive manufacturing system (e.g. a computing module of a “3D printer”) and/or may form part of a computer device communicatively coupled to the additive manufacturing system (e.g. a desktop computer configured to control a “3D printer” and/or a “3D print driver” installed on the computer device). In one case, the computer device may comprise a server communicatively coupled to an additive manufacturing system; e.g. a user may submit the digital representation 130 from a mobile computing device for processing by the apparatus 100 “in the cloud”, the apparatus 100 may then send the deposit instructions 140 to an additive manufacturing system via a network communications channel.
The matrix generator 120 may be arranged to apply different lateral shift routines in order to generate different structures in a threedimensional object. For example, the defined sequence used to transform subsequent matrices may comprise at least one of a random walk in the third dimension; a defined set of lateral shift parameters for each matrix in the set of twodimensional matrices; and a set of points on an analytic curve in the third dimension with variation in a first and second dimension. In one case, the matrix generator is configured to determine lateral shift parameters for the set of twodimensional matrices based on a complementarity metric for at least one of the set of twodimensional matrices. In this case, the complementarity metric is a measure that compares a production material placement associated with a given twodimensional matrix with a production material placement for matrices below the given twodimensional matrix in the set of twodimensional matrices. For example, a complementarity metric may be optimized or maximized when production material is placed at a given (x, y) location based on a particular submatrix, e.g. a submatrix associated with a particular zaxis slice or layer, and no material is placed at the same location for one or more previous submatrices, e.g. one or more submatrices corresponding to zaxis slices or layer below the particular zaxis slice or layer.
In one case, a complementarity metric may indicate a degree of complementarity between two layers and may comprise a percentage of nonempty pixels (e.g. for a twodimensional slice with a given depth) or voxels from one layer that are at [x, y] coordinates where the other layer is blank or empty. If no nonempty pixels or voxels coincide across the layers at the given [x, y] coordinates, e.g. if at the given [x, y] coordinates a set of pixels or voxels is empty in one layer and nonempty in another layer, the complementarity metric has a value of 100% (or 1 in the range 01). If all nonempty pixels or voxels for the slice have corresponding nonempty pixels or voxels in the other layer, e.g. nonempty pixels or voxels coincide across the layers at the given [x, y] coordinates, then the complementarity metric has a value of 0% (or 0 in the range 01). In these cases, repeating a common twodimensional threshold matrix without lateral shifting may result in a low or minimal complementarity (e.g. the latter case). In certain cases, maximizing a complementarity metric may be desirable for a homogeneous distribution of material placement. In other cases, a complementarity metric above a predefined threshold, e.g. representing a defined percentage of coincidence, may be desirable for improved adhesion between layers. In these other cases complementarity need not be maximized, e.g. complementarity values below 100% may be allowed as long as they are above the predefined complementarity threshold.
In one implementation, the digital representation 130 comprises at least one material volume coverage vector for at least one volume of the threedimensional object. A material volume coverage vector represents a probabilistic distribution of materials available to an additive manufacturing system for production of the threedimensional object. In one case, each vector represents a proportional volumetric coverage of materials available for production of the threedimensional object and combinations of said materials. For example, for k materials available for production of the threedimensional object and L discrete deposit states for said materials, the material coverage vector comprises L^{k }vector components, each vector component having an associated probability value. In this case, the discrete deposit instructions comprises production instructions from a set of L*k available instruction values, each element at a production resolution having one of L deposit state instructions for each of said k materials. The materials and material combinations defined by the material volume coverage vector may be associated with a number of different material types, e.g. build materials, finishing materials, support or scaffolding materials, agents and powders, including separate use of materials, joint use of materials, and an absence of any materials.
In the above implementation, each material volume coverage vector may be associated with a series of unit volumes referred to herein as “voxels”, in a similar manner to the way in which a twodimensional image is divided into unit areas referred to as “pixels”, e.g. “voxels” comprising a “pixel” with depth. In one case, cubic volumes may be used with a common value for each of the height, width and depth of a voxel. In other cases, custom unit volumes or voxels may be defined, e.g. where the unit volume is noncubic and/or has values of height, width and depth that differ from each other with (although each voxel has the same height, width and depth as other voxels in the raster representation). In certain cases, the unit volume or voxel may be a nonstandard or customdefined threedimensional shape, e.g. voxels may be based on Delaunay tessellations (e.g. tetrahedra that fill the object) or any other spacefilling polyhedra. In this case, the material volume coverage representation may be stored as a set of tuples (e.g. in an arraytype structure) with one component of the tuple representing a voxel coordinate in three dimensions (e.g. a centroid or bottom corner) and another component of the tuple representing a material volume coverage vector.
To explain the components of a material volume coverage vector, a simple example may be considered. In this simple example, an apparatus is arranged to use two materials to generate a threedimensional object: M1 and M2. These may be fluid build materials that are deposited on a substrate or platen, e.g. excreted or ejected molten polymers, or they may comprise two depositable colored agents that are deposited on one or more layers of powdered build material. In the latter case, in a produced threedimensional object, each “material” may correspond to a cured combination of the depositable agent and a powdered build material. In the former case, in a produced threedimensional object, each “material” may correspond to a solidified portion of excreted or ejected polymer. In any case, each “material” is depositable by an additive manufacturing apparatus to generate a defined volume (e.g. at the production resolution) of an output threedimensional object.
In this simple example, if the additive manufacturing apparatus is arranged to deposit discrete amounts of each material, e.g. in binary deposits, there are four different material combination states: a first state for the deposit of M1 without M2; a second state for the deposit of M2 without M1; a third state for the deposit of both M1 and M2, e.g. M2 deposited over M1 or vice versa; and a fourth state for an absence of both M1 and M2, e.g. “blank” (Z) or an inhibitor. In this case, the material volume coverage vector has four vector components: [M1, M2, M1M2, Z]. In the case of the last vector component, “blank” or “Z” may represent “empty” or an absence of materials in a processed layer, e.g. if agents are deposited on layers of build material this may denote an absence of build material for the processed layer, even though the build material may not be removed until the complete object has been produced.
In another implementation, the digital representation 130 may comprise material proportions that are associated with each voxel. In this implementation, a percentage of each of materials M1 and M2 are defined for each voxel, e.g. [M1, M2] wherein the vector is normalized to 1 (for ranges of 01) or 100% (for percentage ranges).
An example of an apparatus arranged to produce a threedimensional object according to the deposit instructions 140 will now be described with reference to
In
In the example of
In one case, the functionality of the apparatus 100 and the deposit controller 220 may be combined in one embedded system that is arranged to receive the digital representation 130, or data useable to produce this, and control the apparatus 200 accordingly. This may be the case for a “stand alone” apparatus that is arranged to receive data 210, e.g. by physical transfer and/or over a network, and produce an object. For example, this apparatus may be communicatively coupled to a computer device that is arranged to send a “print job” comprising the object definition 140, or data useable to produce the object definition 140, to the apparatus in the manner of a twodimensional printer.
In the present example, the first matrix 320 comprises a first set of values from the twodimensional threshold matrix 310. For example, a given submatrix may be shifted in relation to at least one previous submatrix according to x and y shift parameters.
At block 440, a threedimensional halftone threshold matrix for use in production of a threedimensional object is generated using the processed values for the set of submatrices. In one case, the submatrices are combined in the third dimension, i.e. values of a submatrix comprise values associated with a given set of [x, y] coordinates that are associated with a particular z coordinate. For example, individual shifted submatrices represent different zslices or layers that may be stacked on top of each other to generate a three dimensional matrix. The resultant threedimensional halftone matrix from the method 400 is useable to halftone a digital object representation of a threedimensional object. In particular, processed values for each submatrix represent halftone threshold values for application to a section of a digital representation corresponding to a layer of the threedimensional object. In one case, each submatrix may represent threshold values from a given zlayer; in other cases, slices at an angle to a zplane may be taken and as such threshold values from multiple submatrices that are resident in the sliceplane in the threedimensional matrix may be used.
In one case, the method 400 comprises obtaining the aforementioned digital representation for the threedimensional object; halftoning the digital representation using the threedimensional halftone threshold matrix to generate control data for production of the threedimensional object; and producing the threedimensional object on an additive manufacturing system using the generated control data. In this case, the halftoning may be performed after a design stage yet before a print stage, e.g. near the end of, or late in, a production processing pipeline. Moreover, the threedimensional halftone threshold matrix may be differentially generated for different desired structures or substructures without needing modification of the digital representation of the threedimensional object. This enables flexibility in the design of threedimensional objects and enables structure choices to be made near a time of production.
In one case, values for the set of submatrices are processed in dependence on the obtained digital representation, such that the generation of the threedimensional halftone threshold matrix is performed after obtaining the digital representation but before halftoning and production of the threedimensional object. For example, at least one object property defined in the obtained digital representation may be mapped to a particular sequence or path for laterally shifting the submatrices. Hence, different structures may be implemented via different sequences or paths independently of object geometry, decoupling said geometry from the structure of the object.
In one case, processing values for the set of submatrices comprises: generating a first submatrix in the set of submatrices using the data comprising values for the halftone threshold matrix, the first submatrix being associated with a first zaxis value for the threedimensional halftone threshold matrix; determining lateral shift parameters for a second submatrix, the second submatrix being associated with a second zaxis value for the threedimensional halftone threshold matrix, the lateral shift parameters comprising a first shift parameter for a transformation in relation to an xaxis and a second shift parameter for a transformation in relation to an yaxis; and generating the second submatrix by shifting the values for the halftone threshold matrix in each of the two dimensions of said matrix based on the lateral shift parameters. As described above, in certain cases the lateral shift parameters are selected and/or calculated according to a desired structure for the threedimensional object. In one case, different stacking or shifting functions may be combined into a set of shift parameters represent a composite approach. For example, a clusterdot (e.g. greennoise, AMscreen) type matrix coupled with a defined path or sequence that provide small (e.g. in relation to the size of the matrix) shifts from layer to layer may be used to enhance a connectedness of production material placements, as well as introducing a micro or substructure in the object (e.g. a clusterdottype matrix following a helical path at a low percentage coverage results in a corresponding helicalsubstructure of the object). This may allow direct control of layertolayer material connectivity or connectedness in a threedimensional object. In certain cases, complementarity may be parameterized, e.g. through the use of a complementarity metric, and taken into account in the manner in which halftone threshold matrix is replicated or stacked in threedimensions. Examples of particular defined paths and halftone threshold matrices are discussed in the other examples above.
In one case, a digital representation of a threedimensional object may be at least derived from threedimensional object model data received in a vectorbased format, e.g. data from a STereoLithography “.stl” file. In certain cases this may be converted to a predetermined raster resolution. Vectorbased formats represent a threedimensional object using defined model geometry, such as meshes of polygons and/or combinations of threedimensional shape models. For example, a “.stl” file may comprise a vector representation in the form of a list of vertices in three dimensions, together with a surface tessellation in the form of a triangulation or association between three vertices. The raster representation may comprise a plurality of defined unit voxels or custom voxels, e.g. defined volumes of one or more sizes.
Certain system components and methods described herein may be implemented by way of computer program code that is storable on a nontransitory storage medium. The computer program code may be implemented by a control system comprising at least one processor that is arranged to retrieve data from a computerreadable storage medium. The control system may comprise part of an object production system such as an additive manufacturing system. The computerreadable storage medium may comprise a set of computerreadable instructions stored thereon. The at least one processor may be configured to load the instructions into memory for processing. The instructions are arranged to cause the at least one processor to perform a series of actions. The instructions may instruct the method 400 of
Certain examples described herein enable a digital representation of a threedimensional object, e.g. a threedimensional raster representation, to be halftoned in a variety of manners to generate different structures and/or substructures. This is achieved by providing an apparatus and method for generating a threedimensional threshold matrix that may be applied to the digital representation. The threedimensional threshold matrix is constructed from given twodimensional slices that are transformed in a manner that controls structure and considers constraints that apply in threedimensions. The examples described herein may be applied to a complete object, and/or parts of a common object, to enable differentiated structure for the object and/or object parts through the generation of differentiated threedimensional threshold matrices. Certain examples described herein present ways in which to replicate a twodimension matrix in a third dimension that provides a frequency uniform output, e.g. that controls amounts of production material that are placed at every slice or layer used in an additive manufacturing system. Different subsets of values from a twodimension “seed” threshold matrix may be taken that provide the benefits of the seed threshold matrix while allowing for the selection of values that have defined spatial properties.
Certain examples described herein enable a threedimensional object to be produced with a variety of structures. Certain examples further provide for a robustness of an object substructure by optimizing a connectedness or connectivity between portions of production material forming an output object, e.g. by optimizing a complementarity metric. In certain cases control of object structure or substructure, through lateral shift parameters, provides for a macroscopic material structure in an output object. Moreover, in certain cases, object robustness can be controlled by combining a variety of material structures for a single objects. This enables different material structures to be produced based on a common object design, e.g. in a group of objects produced to the design or in different parts of a common object. The examples described modify a halftone output that is used for the production of threedimensional objects, e.g. in an additive manufacturing system, through the use of a halftoningbased structure control mechanism. Although for ease of explanation in certain cases, use of a single production material has been described, the examples described herein may be expanded to a multimaterial, e.g. with a plurality of production materials, including combinations of production materials.
The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching. Techniques, functions and approaches described in relation to one example may be used in other described examples, e.g. by applying relevant portions of that disclosure.