Insolid modeling and computer-aided design, boundary representation (often abbreviated B-rep or BREP) is a method for representing a 3D shape[1] by defining the limits of its volume. A solid is represented as a collection of connected surface elements, which define the boundary between interior and exterior points.
A boundary representation of a model comprises topological components (faces, edges and vertices) and the connections between them, along with geometric definitions for those components (surfaces, curves and points, respectively). A face is a bounded portion of a surface; an edge is a bounded piece of a curve and a vertex lies at a point. Other elements are the shell (a set of connected faces), the loop (a circuit of edges bounding a face) and loop-edge links (also known as winged edge links or half-edges) which are used to create the edge circuits.[2]
Compared to the constructive solid geometry (CSG) representation, which uses only primitive objects and Boolean operations to combine them, boundary representation is more flexible and has a much richer operation set. In addition to the Boolean operations, B-rep has extrusion (or sweeping), chamfer, blending, drafting, shelling, tweaking and other operations which make use of these.
The basic method for BREP was developed independently in the early 1970s by both Ian C. Braid in Cambridge (for CAD) and Bruce G. Baumgart at Stanford (for computer vision). Braid continued his work with the research solid modeller BUILD which was the forerunner of many research and commercial solid modelling systems. Braid worked on the commercial systems ROMULUS, the forerunner of Parasolid, and on ACIS. Parasolid and ACIS are the basis for many of today's commercial CAD systems.
Following Braid's work for solids, a Swedish team led by Professor Torsten Kjellberg, developed the philosophy and methods for working with hybrid models, wire-frames, sheet objects and volumetric models during the early 1980s. In Finland, Martti Mntyl produced a solid modelling system called GWB. In the USA Eastman and Weiler were also working on Boundary Representation and in Japan Professor Fumihiko Kimura and his team at Tokyo University also produced their own B-rep modelling system.
Initially CSG was used by several commercial systems because it was easier to implement. The advent of reliable commercial B-rep kernel systems like Parasolid and ACIS, mentioned above, as well as OpenCASCADE and C3D that were later developed, has led to widespread adoption of B-rep for CAD.
Boundary representation is essentially a local representation connecting faces, edges and vertices. An extension of this was to group sub-elements of the shape into logical units called geometric features, or simply features. Pioneering work was done by Kyprianou in Cambridge also using the BUILD system and continued and extended by Jared and others. Features are the basis of many other developments, allowing high-level "geometric reasoning" about shape for comparison, process-planning, manufacturing, etc.
Boundary representation has also been extended to allow special, non-solid model types called non-manifold models. As described by Braid, normal solids found in nature have the property that, at every point on the boundary, a small enough sphere around the point is divided into two pieces, one inside and one outside the object.[citation needed][3] Non-manifold models break this rule. An important sub-class of non-manifold models are sheet objects which are used to represent thin-plate objects and integrate surface modelling into a solid modelling environment.
Standardization for boundary representation took time to develop. In a meeting organized by the Computer-Aided Manufacturing International (CAM-I) in 1979 the IGES format was discussed for solid model transfer. IGES was not, then, suitable. Another complication was the coexistence of, then, two major representations, CSG and Boundary Representation, although use of CSG in commercial systems started to decline later. Further developments within CAM-I led to the Experimental Boundary Format, known as XBF, which was proposed to IGES as a possibility for extension to cover Boundary Representation models. However, this was not taken up. Towards the end of the 1980s a project called CAD*I developed a standard representation which then became one of the bases for the development of the STEP solid model format, the first widely accepted data exchange format for Boundary Representation.
In the world of data-exchange, STEP, the Standard for the Exchange of Product Model data also defines some data models for boundary representations in a neutral form which can be mapped to specific data structures. The common generic topological and geometric models are defined in ISO 10303-42 Geometric and topological representation. The following Application Integrated Resources (AICs) define boundary models that are constraints of the generic geometric and topological capabilities:
BREP (Boundary Representation) is a common method for representing 3D objects in computer graphics and computer-aided design (CAD). In the context of NURBS (Non-Uniform Rational B-Splines) 3D modeling, a BREP is a mathematical representation of a solid object that defines its boundaries using curves and surfaces.
A BREP model consists of a set of vertices, edges, and faces, where the faces are represented by NURBS surfaces. Each NURBS surface is defined by a set of control points, a degree, and a knot vector, which determine the shape of the surface. The boundaries of the object are defined by the edges and vertices, which are connected to form closed loops and polygons.
If you are going to be doing some scripting in Rhino, at some point you will need to understand what a Brep is - as well as a number of other technical terms commonly used to define 2D and 3D geometry. If you use exclusively rhinoscriptsyntax, you will still see references to surfaces/polysurfaces, but as soon as you look under the hood (RhinoCommon for example), you will see that these are represented as Breps.
A very simplified way to look at it is that all surface or polysurface geometry in Rhino are Breps, the difference between a surface and a polysurface is that a surface is a Brep with just one face and polysurfaces are Breps that have more than one face. There are exceptions like extrusion objects, but most of the time these too have to be converted to Breps under the hood in order to work with them.
Well in my limited understanding Boundary Representation is what the name implies - surface objects represented by their boundaries - but not necessarily closed volumes. But then I am not a programmer or computer geometry mathematician.
Boundary representation has also been extended to allow special, non-solid model types called non-manifold models . As described by Braid, normal solids found in nature have the property that, at every point on the boundary, a small enough sphere around the point is divided into two pieces, one inside and one outside the object.[citation needed] Non-manifold models break this rule. An important sub-class of non-manifold models are sheet objects which are used to represent thin-plate objects and integrate surface modelling into a solid modelling environment.
Recently we introduced the concept of geometric modeling using an implicit representation, which permits robust operations and the ability to work with many sources of input data. Our flagship product, nTop, uses implicit modeling to generate functional designs from CAD geometry, simulation output, and topology optimization results, generating precise geometry and toolpath data for additive manufacturing and CAM.
Precise boundary-representation (B-rep) solid models power most popular mechanical design tools, as they were the first technology to represent nominal geometry to within micron accuracy. They represent solids as a patchwork of faces joined together by edges that separate a homogeneous inside from the outside. Each face can be made of geometry appropriate for its contribution to the boundary of the part, such as a plane, cylinder, or spline surface.
B-reps are commonly exchanged via neutral formats such as STEP or native formats from component modeling engines such as Parasolid or ACIS. B-reps become impractical to work on when they have thousands of faces and impossible to work on when they have tens of thousands.
Common mesh formats include STL, OBJ, and VRML. For manufacturing, meshes tend to become impractical when they have face counts in the tens of millions. Converting a B-rep to a mesh is typically straightforward, but due to lower resolution of mesh data, converting a mesh to B-rep is rarely more viable than remodeling.
How else might one model a solid shape other than by representing its boundary, piece-wise? The job, as stated above, is to simply know the difference between the inside and the outside of the model.
Although both voxels and distance fields represent a shape using information distributed throughout space, they work and behave differently. The idea of a solid makes sense in any number of dimensions, so let's get a feel for distance fields using a 2D example of relatively simple shape, a capital R with serifs.
The B-rep version of the R is very similar to a 2D profile one would draw in a sketch or with curves in CAD, represented as segments of curves. We can then take that shape and convert it to pixels or a richer distance field representation:
Notice the white lines indicate constant distance in the distance field look just like offset contours of the shape. Indeed, a distance field encodes all of the information needed to instantly offset an object.
Another way to visualize the distance field is by using an extra dimension to hold the field value. Think of the distance field lines in the image above as a topographical map, which we can metaphorically reconstruct into an R-shaped island in a flat sea, where sea level represents our shape:
3a8082e126