330 research outputs found
An exact general remeshing scheme applied to physically conservative voxelization
We present an exact general remeshing scheme to compute analytic integrals of
polynomial functions over the intersections between convex polyhedral cells of
old and new meshes. In physics applications this allows one to ensure global
mass, momentum, and energy conservation while applying higher-order polynomial
interpolation. We elaborate on applications of our algorithm arising in the
analysis of cosmological N-body data, computer graphics, and continuum
mechanics problems.
We focus on the particular case of remeshing tetrahedral cells onto a
Cartesian grid such that the volume integral of the polynomial density function
given on the input mesh is guaranteed to equal the corresponding integral over
the output mesh. We refer to this as "physically conservative voxelization".
At the core of our method is an algorithm for intersecting two convex
polyhedra by successively clipping one against the faces of the other. This
algorithm is an implementation of the ideas presented abstractly by Sugihara
(1994), who suggests using the planar graph representations of convex polyhedra
to ensure topological consistency of the output. This makes our implementation
robust to geometric degeneracy in the input. We employ a simplicial
decomposition to calculate moment integrals up to quadratic order over the
resulting intersection domain.
We also address practical issues arising in a software implementation,
including numerical stability in geometric calculations, management of
cancellation errors, and extension to two dimensions. In a comparison to recent
work, we show substantial performance gains. We provide a C implementation
intended to be a fast, accurate, and robust tool for geometric calculations on
polyhedral mesh elements.Comment: Code implementation available at https://github.com/devonmpowell/r3
Compact union of disjoint boxes: An efficient decomposition model for binary volumes
This paper presents in detail the CompactUnion of Disjoint Boxes (CUDB), a decomposition modelfor binary volumes that has been recently but brieflyintroduced. This model is an improved version of aprevious model called Ordered Union of Disjoint Boxes(OUDB). We show here, several desirable features thatthis model has versus OUDB, such as less unitary basicelements (boxes) and thus, a better efficiency in someneighborhood operations. We present algorithms forconversion to and from other models, and for basiccomputations as area (2D) or volume (3D). We alsopresent an efficient algorithm for connected-componentlabeling (CCL) that does not follow the classical two-passstrategy. Finally we present an algorithm for collision (oradjacency) detection in static environments. We test theefficiency of CUDB versus existing models with severaldatasets.Peer ReviewedPostprint (published version
Statistical properties of 3D cell geometry from 2D slices
Although cell shape can reflect the mechanical and biochemical properties of
the cell and its environment, quantification of 3D cell shapes within 3D
tissues remains difficult, typically requiring digital reconstruction from a
stack of 2D images. We investigate a simple alternative technique to extract
information about the 3D shapes of cells in a tissue; this technique connects
the ensemble of 3D shapes in the tissue with the distribution of 2D shapes
observed in independent 2D slices. Using cell vertex model geometries, we find
that the distribution of 2D shapes allows clear determination of the mean value
of a 3D shape index. We analyze the errors that may arise in practice in the
estimation of the mean 3D shape index from 2D imagery and find that typically
only a few dozen cells in 2D imagery are required to reduce uncertainty below
2\%. This framework could be naturally extended to estimate additional 3D
geometric features and quantify their uncertainty in other materials
Improving X10 Program Performances by Clock Removal
International audienceX10 is a promising recent parallel language designed specifically to address the challenges of productively programming a wide variety of target platforms. The sequential core of X10 is an object-oriented language in the Java family. This core is augmented by a few parallel constructs that create activities as a generalization of the well known fork/join model. Clocks are a generalization of the familiar barriers. Synchronization on a clock is specified by the advance() method call. Activities that execute \emph{advances} stall until all existent activities have done the same, and then are released at the same (logical) time. This naturally raises the following question: are clocks strictly necessary for X10 programs? Surprisingly enough, the answer is no, at least for sufficiently regular programs. One assigns a date to each operation, denoting the number of advances that the activity has executed before the operation. Operations with the same date constitute a \emph{front}, fronts are executed sequentially in order of increasing dates, while operations in a front are executed in parallel if possible. Depending on the nature of the program, this may entail some overhead, which can be reduced to zero for polyhedral programs. We show by experiments that, at least for the current X10 runtime, this transformation usually improves the performance of our benchmarks. Besides its theoretical interest, this transformation may be of interest for simplifying a compiler or runtime library
Aspects of the Rover Problem
The basic task of a rover is to move about automonously in an unknown environment. A working rover must have the following three subsystems which interact in various ways: 1) locomotion--the ability to move, 2) perception--the ability to determine the three-dimensional structure of the environment, and 3) navigation--the ability to negotiate the environment. This paper will elucidate the nature of the problem in these areas and survey approaches to solving them while paying attention to real-world issues.MIT Artificial Intelligence Laborator
- …