Conference PaperPDF Available

Farthest point seeding for efficient placement of streamlines

Authors:

Abstract

We propose a novel algorithm for placement of streamlines from two-dimensional steady vector or direction fields. Our method consists of placing one streamline at a time by numerical integration starting at the furthest away from all previously placed streamlines. Such a farthest point seeding strategy leads to high quality placements by favoring long streamlines, while retaining uniformity with the increasing density. Our greedy approach generates placements of comparable quality with respect to the optimization approach from Turk and Banks, while being 200 times faster. Simplicity, robustness as well as efficiency is achieved through the use of a Delaunay triangulation to model the streamlines, address proximity queries and determine the biggest voids by exploiting the empty circle property. Our method handles variable density and extends to multiresolution.
Farthest Point Seeding for Efficient Placement of Streamlines
Abdelkrim Mebarki
INRIA Sophia-Antipolis
Pierre Alliez
INRIA Sophia-Antipolis
Olivier Devillers
INRIA Sophia-Antipolis
ABSTRAC T
We propose a novel algorithm for placement of streamlines from
two-dimensional steady vector or direction fields. Our method con-
sists of placing one streamline at a time by numerical integration
starting at the furthest away from all previously placed streamlines.
Such a farthest point seeding strategy leads to high quality place-
ments by favoring long streamlines, while retaining uniformity with
the increasing density. Our greedy approach generates placements
of comparable quality with respect to the optimization approach
from Turk and Banks, while being 200 times faster. Simplicity,
robustness as well as efficiency is achieved through the use of a
Delaunay triangulation to model the streamlines, address proxim-
ity queries and determine the biggest voids by exploiting the empty
circle property. Our method handles variable density and extends
to multiresolution.
Keywords: Streamline placement, farthest point seeding, Delau-
nay triangulation, variable density, multiresolution.
1 INTRODUCTION
Vector and direction fields are commonly used for modeling physi-
cal phenomena, where a direction and magnitude, or a vector is as-
signed to each point inside a domain. A typical example of a vector
field is given by the direction, orientation and velocity of a steady
wind. Examples of direction fields include the principal curvature
directions of a smooth surface. In this paper a flow field refers to
either a direction or to a vector field.
Visual depiction of flow fields is mo-
tivated by the analysis and explo-
ration of results in scientific comput-
ing. One popular method consists of
choosing a set of samples through-
out the field, and depicting associ-
ated arrow icons to present a view of
the direction, orientation and magni-
tude in a single picture (see inset).
The most delicate task of this tech-
nique lies into the choice of sample positions so as to best balance
between sparse sampling for clear depiction at the risk of missing
fine details, versus fine sampling at the risk of a cluttered visualiza-
tion. For high range vector fields where the magnitude cannot be
used to scale the arrow icons, the iconic representation is frequently
composed of unit vectors instead, combined with color coding to
depict magnitude. Other techniques have been developed to obtain
a denser depiction by imaging flow fields, where the images are ob-
tained by advection of a random noise image [2, 3, 4]. Conversely,
some techniques propose to extract only salient features of the flow
Abdelkrim.Mebarki@sophia.inria.fr
Pierre.Alliez@sophia.inria.fr
Olivier.Devillers@sophia.inria.fr
Figure 1: Placement of streamlines with a uniform density (with a
tapering effect [1]). The black dots depict the seed points used for
numerical integration. Processing time: 160 ms on a 2GHz Pentium
IV.
and depict them as geometric icons to facilitate comprehensive vi-
sualization [5].
One of the most popular methods in flow visualization consists
of placing a set of streamlines which are always tangential to the
flow in order to emphasize the global field coherency (see Fig. 1).
Beside, high quality placement of streamlines has recently proven
relevant for other applications such as non-photorealistic render-
ing [6, 7] or curve-based surface remeshing [8, 9]. We next give
a few definitions and an overview of existing techniques for high
quality placement of streamlines.
Definitions A streamline is a curve everywhere tangent to the
field. A streamline can be considered as the path traced by an imag-
inary massless particle dropped into a steady fluid flow described by
the field. In practice, a streamline is often represented as a polyline
iteratively elongated by bidirectional numerical integration started
from a seed point, until it comes close to another streamline, hits
the domain boundary, reaches a critical point or generates a closed
path. A valid placement of streamlines is obtained by saturating
the domain with a set of tangential streamlines in accordance with
a specified density. A high quality streamline placement for visual-
ization has no formal definition, although it is admittedly related to
the uniformity of streamlines as well as to the spacing with respect
to the desired density. Moreover, long streamlines are preferred
to short ones, the goal being to better emphasize the global field
temporal coherency. At the intuitive level, and as already pointed
in [10], most streamline terminations not coincident with the flow
field singularities are perceived as artificial singularities and thus
are potential distracters for an observer.
2 RELATED WOR K
When constraining the streamlines to be tangential to the flow, the
critical stage of any streamline placement algorithm reduces to the
choice of seed points used to start the numerical integration. One
trivial solution consists of choosing the seed points on a regular
grid, but the resulting streamlines are not evenly spaced and some
undesirable patterns frequently appear in the final placement. An-
other solution is to randomly generate the seed points with a uni-
form law, but has not shown to improve the placement quality nor
to guaranty the domain saturation.
In a pioneering work, Turk and Banks [1] proposed an energy-
minimizing approach to generate high quality placements. Their
algorithm initially creates a set of so-called streamlets (i.e., very
short streamlines), then applies a series of energy-decreasing ele-
mentary operations to combine, delete, create, lengthen, or shorten
the streamlets. To obtain a uniform density of streamlines, the en-
ergy to be minimized is related to the difference between a low-
pass filtered version of the current placement and a uniform grey
image. This approach generates high quality placements, with sig-
nificant computation times due to the pliant aspect of the algorithm
(a method is pliant if it incorporates both insertion and deletion, as
well as local optimization, see [11]).
Figure 2: Local seeding strategy produces empty spaces due to
the consecutive stopping of a series of streamlines (bottom right
closeup). Some discontinuities also appear near singularities (top
right closeup) and in laminar areas (bottom left closeup). Figure re-
produced from [12].
Jobard and Lefer proposed an algorithm to create evenly spaced
streamline placements [12]. Their solution is a greedy placement
seeded in the neighborhood of previously placed streamlines. Dur-
ing the numerical integration of a streamline, a set of seed points
are spread on both sides, and stored into a container of candidate
seed points for future placements. The next streamline is placed
from a valid seed point randomly chosen and popped out of the
container. The algorithm terminates when no more valid seeds re-
main, i.e. when the container is empty. Although providing a good
balance between efficiency and quality, some empty spaces may re-
main in the placement, and the length of streamlines is not fully
satisfactory. A careful examination of a series of placements pro-
duced by this technique led us to characterize the undesirable ef-
fects produced by such a local seeding strategy. The first effect
is a large empty space due to the consecutive stopping of a series
of streamlines placed sequentially (see Fig. 2). These effects are
more frequent when the flow is locally turbulent. Several disconti-
nuities also appear near critical points as well as in homogeneous
areas. Another undesirable effect is the concentration of a residual
space incident to the last streamline of a sequence when there is not
enough room to insert another streamline between the last one in
the sequence and a previously placed streamline. One desirable ef-
fect would be to evenly distribute this residual on a larger area, even
at the price of a more global deviation from the local ideal spacing.
To better depict the topology of the flow, Verma et al. [13] pro-
posed a streamline placement technique where the streamline inte-
gration is seeded nearby critical points. In a final step the remaining
space is filled by resorting to a random seeding strategy. Although
this method provides placements that enhance the flow features and
topology, it does not provide precise control over the density. More-
over, seeding streamlines nearby a singularity where the flow is of-
ten highly turbulent does not intrinsically favor long streamlines.
One important component for all greedy streamline placement al-
gorithms is the data structure. It is commonly used to model the
streamlines and the empty spaces, to accelerate the point location
as well as the streamline-to-streamline distance queries. Some spe-
cific data structures have also been developed in order to cope with
large data sets [14]. A streamline is frequently approximated by a
polyline, each integration step adding a new point at one of its ex-
tremities. A common acceleration step consists of approximating
the distance queries by simpler point-to-point queries, and the num-
ber of associated computations is often reduced by using regular
boolean grids combined with region growing procedures [12, 13].
Unfortunately this choice is not suited to high density, and even less
suited to variable density.
A visual qualitative study of existing streamline placement algo-
rithms led us to distinguish all greedy methods from the pioneering
optimization technique introduced by Turk and Banks [1]. The lat-
ter has not been really improved in terms of quality since 1996,
while the greedy methods trade efficiency for a lower quality (they
are typically two orders of magnitude faster).
3 CONTRIBUTIONS
The main contribution of our work is a new greedy algorithm which
improves over previous work by the efficiency of the placement
without compromising the result quality, algorithmic simplicity, ro-
bustness and scalability. Our greedy method generates placements
of comparable quality with respect to the optimization approach in-
troduced by Turk and Banks [1], while being conceptually simpler
and 200 times faster. To obtain a high quality placement with long
and evenly spaced streamlines, our method departs from the usual
greedy seeding strategies [12, 13] by choosing the seed points at the
furthest away from all existing streamlines, namely at the center of
the biggest voids within the domain. This more global criterion,
already used successfully for point sampling and meshing [15, 16]
drives the placement procedure by covering the biggest voids in pri-
ority. At the intuitive level, seeding a streamline at the farthest point
favors long streamlines. Our experiments show that the same idea
equally distributes the spaces between streamlines over the domain
to obtain an evenly spaced placement, and is amenable to multires-
olution placement by retaining the increased density at each newly
inserted streamline.
Another important contribution of our work is the data structure.
We use a Delaunay triangulation combined with a robust arithmetic
from the Computational Geometry Algorithms Library [17]. It has
proven both robust and efficient for point location and proximity
queries, even for extreme ranges of density specified as input in our
experiments. Notice that the Delaunay triangulation not only solves
for proximity queries in our algorithm, but it also provides us with
maximal empty circles, which are candidates for the biggest cavi-
ties. Finally, we drastically improve the efficiency of our algorithm
by selecting only a small subset of all Delaunay circumcircle cen-
ters as candidate seeds for streamline integration. This optimization
is shown to be not detrimental to the placement quality.
4 PLACE ME NT OF STREAMLINES
The input of our algorithm is given by (i) a flow field, (ii) a density
specified either globally by the inverse of the ideal spacing distance,
or locally by a density field, and (iii) a saturation ratio over the de-
sired spacing required to trigger the seeding of a new streamline.
The input flow field is given by a discrete set of vectors or directions
sampled within a domain, associated with an interpolation scheme
(e.g. bilinear interpolation over a regular grid, or natural neighbor
interpolation over an irregular point set [18]) to allow for an eval-
uation at each point coordinate within the domain. The output is a
streamline placement, represented as a list of streamlines.
The core idea of our algorithm consists of placing one streamline
at a time by numerical integration seeded at the farthest point from
all previously placed streamlines. The streamlines are approxi-
mated by polylines, whose points are inserted in a 2D Delaunay
triangulation. The empty circumscribed circles of the Delaunay
triangles provide us with a good approximation of the cavities in
the domain. After each streamline integration, all incident triangles
which circumcircle diameter is larger (within the saturation ratio)
than the desired spacing distance are pushed to a priority queue
sorted by the triangle circumcircle diameter. To start each new
streamline integration, the triangle with largest circumcircle
diameter (and hence the biggest cavity) is popped out of the queue.
We first test if it is still a valid triangle of the triangulation, since
it could have been destroyed by a streamline previously added
to the triangulation. If not, we pop another triangle out of the
queue. If yes, we use the center of its circumcircle as seed point to
integrate a new streamline (see Fig. 4). Our algorithm terminates
when the priority queue is empty. The size of the biggest cavity
being monotonically decreasing, our algorithm guarantees the
domain saturation. We summarize our algorithm in the following
pseudo-code:
PLACEMENT(f ield,density,saturation)
Parameters: f ield (vector or direction field)
density (inverse of spacing between streamlines)
saturation (ratio over the spacing, > 1)
Variables:
Visualization domain domain
Delaunay
triangulation triangulation
list<streamline> placement
priority
queue<triangle> queue
Algorithm:
beg
in
initialization()
streamline s=PLACE STREAMLINE(domain.center())
ADD
STREAMLINE(placement,s)
while
(!queue.empty())
triangle t=queue.pop()
if
(t still in triangulation)
s=PLACE
STREAMLINE(t.circumcenter())
ADD
STREAMLINE(placement,s)
endif
endwhile
return placement
end
initialization() This function in-
serts in the triangulation a set of points
uniformly sampled on a rectangle sur-
rounding the domain boundary(see in-
set) . The rectangle is constructed by
enlarging the domain boundary with
a distance equivalent to the desired
separating distance between stream-
lines. This step is required to ensure
a proper domain saturation.
place
streamline() The streamlines are integrated both for-
ward and backward from a seed point. The integration, performed
using first order Euler or second order Runge-Kutta [19], is stopped
when the newly integrated point p is located outside the domain, or
when the distance between p and the current placement (including
part of the current streamline) is smaller than the separating
distance. In the next section we explain how we approximate this
distance instead for the sake of efficiency.
PLACE STREAMLINE(seed)
begin
point p=seed
streamline s
do
% forward integration %
s.insert(p)
triangulation.insert(p)
p=integrate
forward from(p)
while(domain.inside(p) and
distance(p,placement) < 1/density)
do
% backward integration %
...
return
s
end
4.1 Adding a Streamline
The function ADD STREAMLINE(placement, streamline)
inserts the newly integrated streamline streamline to the place-
ment, and subsequently pushes the set of triangles incident to
streamline in the priority queue. To reduce the number of
triangles pushed in the queue, all triangles which circumcircle
diameter is smaller than saturation ratio/density are not
inserted to the queue. Since the saturation ratio is greater than 1
(we used 1.6 in all our experiments), the latter procedure allows
us to avoid the generation of short streamlines when the domain is
close to be saturated.
ADD STREAMLINE(placement,streamline)
begin
placement.insert(streamline)
for each(t incident to streamline)
if
(t.circumradius is local maximum and
t.circumradius > saturation × 1/density)
queue.insert(t)
endif
endwhile
end
4.2 Approximating the Distances
When choosing the integration step significantly smaller than the
desired separating distance, a good approximation of the distance
between streamlines is given by the minimal distance between the
newly integrated point and all other points of the previously inte-
grated streamlines. Notice that when the current streamline comes
back to itself or spirals (see Fig.3, right), things become more com-
plicated since the distance computation should also include some
but not all points of the current streamline (adding all points
would always return the integration step as distance). To alleviate
this problem and reduce the number of distance computations as
well, we insert all integrated points in a Delaunay triangulation, and
approximate the distance by the minimal circumcircle diameter of
the triangles incident to the newly integrated point. The skinny tri-
angles due to the ratio between the integration step and the desired
separating distance provide us with a sufficiently accurate approx-
imation of the distance with both regular and spiraling streamlines
(see Fig.3).
Figure 3: The separating distance between streamlines is approxi-
mated using the minimal circumdiameter of the triangles incident to
the newly integrated point.
4.3 Optimizations
Although the previous section completes the description of our ba-
sic algorithm, there is room for improving efficiency. As mentioned
in Section 4.1, adding a streamline to the placement leads to the in-
sertion of all its incident triangles to the priority queue. The priority
queue is therefore quickly populated with a large number of trian-
gles. Moreover, a lot of triangles in the queue are in fact short-lived
in the triangulation, since placing a new streamline breaks all trian-
gles on its way in the triangulation (see Fig.5).
Figure 5: Each newly integrated streamline breaks all triangles on its
way.
The vast majority of triangles pushed in the queue will therefore
be invalidated when popped out of the queue because they do not
belong to the triangulation anymore. To reduce the number of tri-
angles inserted to the priority queue, we walk along the right side
of the newly placed streamline, examine the associated sequence of
circumcircle radii of all incident triangles, and insert to the queue
the triangles which correspond to local maxima. We apply the same
procedure for the left side, and finally insert all triangles incident
to the streamline extremities to ensure a proper domain saturation.
With almost no impact on the placement quality (see Fig.6), such
an optimization reduces on average by 30 the number of triangles
pushed in the queue, and therefore produces a significant speed-up
of our algorithm. Notice that this step does not disrupt the satura-
tion guarantee, since each integrated streamline creates a new set of
triangles and hence new local maxima as candidate seed points.
Figure 6: Seed points pushed in the priority queue at an intermedi-
ate step of the algorithm, when considering all triangle circumcenters
(left), and when choosing only the ones corresponding to local max-
ima of circumcircle radii (right).
4.4 Variable density
Our algorithm can take as input a non uniform density field, or sim-
ply evaluate any function of the flow such as velocity or vorticity.
The desired separating distance simply becomes a function of any
point coordinates within the domain (see Fig.7). The triangulation
data structure has proven particularly efficient and robust at han-
dling even extreme ranges of density (up to 20K streamlines com-
posed of 8M points in our experiments).
Figure 7: Placement of streamlines with a variable density, in this
example related to the flow velocity.
4.5 Multiresolution
Visual exploration of complex flow fields may require multireso-
lution streamline placement. A typical exploration scenario is a
rough depiction of the field on the whole domain, followed by a
focused depiction on the regions of interest. One method proposed
by Jobard and Lefer [20] performs a sequence of nested streamline
placements with increasing density. The streamlines placed at a
given level are frozen and used as additional constraints for the
finer levels. This approach produces short streamlines added to fill
the gaps in-between the streamlines placed at coarser levels. Our
method improves over the quality and smoothness of transitions
between levels by elongating all previously placed streamlines
after each increase of the density and before each new placement
of streamlines (see Fig.8). The pseudo-code for the multiresolution
version of our algorithm is as follows:
MULTIRESOLUTION(number of levels)
begin
placement=PLACEMENT(field,density,saturation)
For
each level do
increase density
placement.lengthen
streamlines()
placement.place
new streamlines()
return
placement
end
do
end
Figure 4: The intermediate stages of our streamline placement algorithm. The biggest cavities are modeled by the green circles. The triangulation
corresponding to each placement is depicted in blue, and the candidate seed points are depicted in red. The final result is shown in Fig.1.
Figure 8: Multiresolution placement of streamlines: From a given ini-
tial low density, the following sequence is applied: (a) place stream-
lines (black parts), increase density, (b) lengthen existing streamlines
(red parts), (c) place streamlines (green streamlines), etc..
4.6 Implementation
We have implemented our algorithm in C++. The 2D Delau-
nay triangulation and other components for geometric comput-
ing are provided by the Computational Geometry Algorithms Li-
brary [17]. The priority queue is taken from the Standard Template
Library [21]. Part of the code provided by Greg Turk has been
reused to read the vector fields from files as discrete sets of 2D vec-
tors sampled on a regular grid. Overall our implementation takes
no more than 2000 lines of code, with 1600 for the placement algo-
rithm itself (remaining part is devoted to file input/output, debug-
ging and display). For comparison, we have also implemented the
algorithm from Jobard and Lefer [12] using our data structure for
efficient evaluation of distance queries. Our algorithm is currently
being prepared to be submitted as a CGAL package.
5 RESULTS
Fig.9 depicts a streamline placement computed from a real
dataset of the wind in Japan (provided by Weathernews Inc., Japan).
The 2D vectors of the input dataset are non uniformly sampled and
correspond to 522 wind sensors widespread on a large area sur-
rounding the country (few sensors in the sea, lots of them on land).
The domain boundary is delimited by the convex hull of the sen-
sors. The vector field is obtained by natural neighbor interpolation
over the sensor point locations. This result illustrates the behavior
of our algorithm both on turbulent and on laminar areas. The close-
ups are taken from turbulent regions and illustrate placements with
an increased density of streamlines.
Fig.10 depicts comparative results between Turk-Banks [1], Jobard-
Lefer [12] and our algorithm. All pictures from the first two
columns are reproduced from the original papers. We now list the
noticeable differences for several criteria.
Domain saturation Our algorithm saturates the domain by
construction. The two other placements also saturate the domain,
except for Jobard and Leffer’s placements where some free spaces
remain, in particular nearby singularities in the densest placement.
Flow coherency A high quality placement minimizes the
number of discontinuities to better emphasize the flow coherency.
Turk-Banks and our algorithm exhibit similar results for both sparse
and dense cases. The denser, the more discontinuities appear in
the results produced by Jobard-Lefer. Since our streamlines are
started at the farthest point from all other streamlines, our algorithm
tends to generate streamlines which are mostly stopped by critical
points or by domain boundaries at the begining, then the remain-
ing streamlines are stopped mostly by other streamlines when the
overall density increases. This partially explains the behaviour of
our placement algorithm which nicely wraps the singularities (see
Figure 1).
Uniform density Some residual spaces remain in Jobard-
Lefer algorithm by placing new seeds at the local ideal spacing
distance. Although unavoidable, these spaces are more equally dis-
tributed in Turk-Banks and our placements. In essence our algo-
Figure 9: Visualization of wind in Japan estimated at 522 non-uniform wind sensors locations (sensor positions are depicted as red dots). The
close-ups are taken from the most turbulent areas and have been generated using an increased density of streamlines. Notice that the laminar
areas are explained by the sparsity of wind sensors on the sea.
rithm does not intend to match the desired local density perfectly,
and produces more locally uniform placements instead.
Timings and memory Table 1 summarizes the timings mea-
sured on a 2GHz Pentium IV. As already mentioned in Section 4.6
we have implemented the algorithm from Jobard and Lefer [12] to
obtain fair measures on a modern computer. For Turk and Banks al-
gorithm, we have executed their software available for download
1
.
Our algorithm improves over Jobard-Lefer algorithm by the quality
of placements, within shorter times. It produces comparable results
with Turk-Banks algorithm, while being two orders of magnitude
(200 times) faster. Notice that our implementation of Jobard-Lefer
algorithm with a Delaunay triangulation data structure is approxi-
mately twice as fast as an implementation similar to the original.
x 10
5
0
5
10
15
20
25
30
35
40
Farthest Point Seeding
Jobard-Lefer
0.8
0.6
1.0 1.2
1.4 1.6 1.8
2.0 2.2 2.4
0.4
total length of streamlines
duration
Scalability. We compare
the scalability of our algorithm
with Jobard-Lefer greedy algo-
rithm (see inset). To quantify
scalability we measure the
duration (in s) with respect to
the total length of streamlines
already placed (expressed in
number of integration steps).
Our algorithm exhibits a linear
behavior whereas our implementation of Jobard-Lefer algorithm
does not, mainly due to the quickly increasing number of seed
points generated (our method uses a sparse priority queue instead).
Separating dist. Our algorithm Jobard-Lefer Turk-Banks
(% width) [12] [1]
0.84 240 ms 790 ms 47 s
1.68 140 ms 290 ms 36 s
3.36 80 ms 130 ms 20 s
Table 1: Timings measured on a 2GHz Pentium IV. For each density
our algorithm is respectively 195, 257 and 250 times faster than Turk-
Banks for a comparable quality.
6 CONCLUSION
A novel greedy algorithm for high quality placement of streamlines
is proposed. Our algorithm favors the generation of long stream-
lines by using a farthest point seeding strategy, and ensures the do-
main saturation by construction. It is simple, efficient, determin-
istic and involves only two basic algorithmic components which
are a priority queue and a Delaunay triangulation both available in
widespread libraries [21, 17]. The main strength of our method
lies into the balance between efficiency and placement quality; our
greedy algorithm produces results of comparable quality with re-
spect to the state-of-the-art optimization-based method from Turk-
Banks, while being on average 200 times faster (timings are mea-
sured on the same computer). Most functions that trigger the al-
gorithm sequence such as farthest point localizations and distance
queries are built upon the Delaunay triangulation. Once parame-
terized with the appropriate arithmetic, the latter provides us with
robustness and scalability.
As future work we plan to add a preliminary step to our algorithm
by detecting all closed streamlines as recently proposed by [22], and
inserting them to the initial placement. We also wish to extend our
algorithm to 3D vector fields. One possible improvement would be
to add one final optimization stage to our algorithm, so as to trade
off speed for placement quality. Finally, a stimulating challenge
would be to elaborate upon a streamline placement algorithm for
time-varying flows.
1
http://www.cc.gatech.edu/˜turk/streamlines/streamlines.html
ACKNOWLEDGMENTS
The authors thank Greg Turk for the streamline package available
for download, Bruno Jobard for providing us a copy of his Ph.D.
thesis and a set of vector fields, Xavier Tricoche for discussion, and
David Cohen-Steiner for help with the distance approximation.
REFERENCES
[1] G. Turk and D. Banks. Image-Guided Streamline Placement. In ACM
SIGGRAPH Conference Proceedings, pages 453–460, 1996.
[2] J. J. van Wijk. Spot noise texture synthesis for data visualization. In
Proceedings of the 18th annual conference on Computer graphics and
interactive techniques, pages 309–318, 1991.
[3] B. Cabral and L. C. Leedom. Imaging vector fields using line inte-
gral convolution. In Proceedings of the 20th annual conference on
Computer graphics and interactive techniques, pages 263–270, 1993.
[4] RS. Laramee, H. Hauser, H. Doleisch B. Vrolijk, FH. Post, and
D. Weiskopf. The state of the art in flow visualization: Dense and
texture-based techniques. Computer Graphics Forum, 23(2):203–221,
2004.
[5] F. H. Post, B. Vrolijk, H. Hauser, R. S. Laramee, and H. Doleisch.
Feature extraction and visualization of flow fields. In Eurographics
2002 State-of-the-Art Reports, pages 69–100. European Association
for Computer Graphics, The Eurographics Association, 2002.
[6] C. R
¨
ossl and L. Kobbelt. Line-art rendering of 3d-models. In Pro-
ceedings of the 8th Pacific Conference on Computer Graphics and
Applications, 2000.
[7] J. Zander, T. Isenberg, S. Schlechtweg, and T. Strothotte. High Quality
Hatching. Computer Graphics Forum (Proceedings of Eurographics),
23(3):421–430, 2004.
[8] P. Alliez, D. Cohen-Steiner, O. Devillers, B. Levy, and M. Desbrun.
Anisotropic polygonal remeshing. ACM Transactions on Graphics.
Special issue for SIGGRAPH, pages 485–493, 2003.
[9] M. Marinov and L. Kobbelt. Direct anisotropic quad-dominant
remeshing. In Proceeding of Pacific Graphics, Seoul, 2004.
[10] B. Jobard. Visualisation de champs de vecteurs bidimensionnels
`
a
base de streamlines. PhD thesis, Univ. du Littoral C
ˆ
ote d’Opale, 2000.
[11] FJ. Bossen and PS. Heckbert. A pliant method for anisotropic mesh
generation. In 5th Intl. Meshing Roundtable, pages 63–74, 1996.
[12] B. Jobard and W. Lefer. Creating Evenly-Spaced Streamlines of Ar-
bitrary Density. In Proceedings of the Eurographics Workshop on Vi-
sualization in Scientific Computing, pages 45–55, 1997.
[13] V. Verma, D. T. Kao, and A. Pang. A Flow-guided Streamline Seeding
Strategy. In IEEE Visualization, pages 163–170, 2000.
[14] S.-K. Ueng, C. Sikorski, and K.-L. Ma. Out-of-core streamline visu-
alization on large unstructured meshes. IEEE Transactions on Visual-
ization and Computer Graphics, 3(4):370–380, 1997.
[15] J.-D. Boissonnat and S. Oudot. Provably good surface sampling and
approximation. In Proc. 1st Symp. on Geom. Proc., pages 9–18, 2003.
[16] M. Lindenbaum, M. Porat, Y. Y. Zeevi, and Y. Eldar. The farthest
point strategy for progressive image sampling, 1996.
[17] CGAL: Computational Geometry Algorithms Library. www.cgal.org.
[18] J. Fl
¨
ototto. CGAL interpolation package. www.cgal.org.
[19] W. H. Press, W. T. Vetterling, S. A. Teukolsky, and B. P. Flannery. Nu-
merical Recipes in C++: the art of scientific computing. Cambridge
Univ. press, 2 edition, 2002.
[20] B. Jobard and W. Lefer. Multiresolution flow visualization. In WSCG
2001 Conference Proceedings, 2001.
[21] M. H. Austern. Generic Programming and the STL. Addison-Wesley,
1998.
[22] H. Theisel, T. Weinkauf, H.-C. Hege, and H.-P. Seidel. Grid-
independent detection of closed stream lines in 2d vector fields. In
VMV 2004, 2004.
Turk-Banks 96 Jobard-Lefer 97 Our algorithm
Figure 10: Streamline placements generated by Turk-Banks [1], Jobard-Lefer [12], and by our algorithm for three increasing densities (top to
bottom, 3.36%, 1.68%, 0.84% of the flow width requested as separating distance).
... This method tries to ensure local uniformity, but the details of the flow field are not obvious. Abdelkrim Mebraki et al. [2] proposed the farthest seed point placement algorithm, avoiding large blank areas. Xujia Qin [3] proposed to use the Sobel sequence to determine the position of the streamline seed point, but the streamline spacing still lacks uniformity. ...
... Step 7: Streamline generation and color mapping are complete, save the results. In order to compare the quality of the streamline distribution, the placement effect of the streamlines between the algorithm in this paper and the Jobard [2] algorithm is compared. ...
Article
Full-text available
2D Flow field streamline visualization, as a classic visualization method, expresses the structure and characteristics of the flow field with continuous streamlines. In this paper, a streamline color mapping enhancement algorithm based on double-layer grid control is proposed, which can better display the flow field and its field intensity distribution. The distance of the streamline is controlled by the double-layer grid, the seed point is scattered in the largest blank seeding area, and the visual streamline diagram of different effects can be obtained by setting the density control parameters, vector illustration with more even color distribution. The results show that the algorithm in this paper can obtain more continuous streamline distribution, and the streamline distribution obtained by regional equalization color mapping can reflect more field intensity distribution characteristics of the flow field.
... The latter is the only available work that enables the direct translation of an orientation field into a printing pattern. However, the adopted seeding strategy, initially proposed by Jobard and Lefer [35], had been reported to promote discontinuous trajectories [36] that could be detrimental for structural components. ...
... Therefore, this step checks the spacing between the streamlines and iteratively removes those that violate the spacing requirements. For this purpose, the Delaunay triangulation method [36] is used. The integration points of the streamlines are subjected to Delaunay Triangulation, which yields a mesh of triangles whose vertices are made of streamline integration points (see Fig. 5). ...
Article
Material extrusion is a popular additive manufacturing process that gained prominence in various industrial applications. The current work addresses the limitations of the existing slicing software in producing parts with customized filament layouts. A new filament deposition algorithm that produces filament paths taking as input arbitrary point-wise orientation fields is presented. Like slicing software, it can control various process parameters, including extrusion width, layer height, filament spacing, number of layers, printing and travel speeds, and produces G-Code instructions. Capabilities of the algorithm are presented by producing parts with both partial and maximum infill and parts with a multi-oriented layer stacking sequence. The results show that the algorithm can print parts with filaments oriented along the input orientation field at different infills, thus making this contribution a potential tool for many applications that demand customized filament placement.
... The method could self-adapt and be applied to complex 3D object surfaces at a high speed. (5) Another fast seed point deployment method was proposed by Mebarki et al. (6) All of these methods have advantages such as simple processes and high speeds, but they do not carry out the structural analysis of vector fields and have the important features of the vector field. ...
Article
Embroidery is a long-standing and high-quality approach to making logos and images on textiles. Nowadays, it can also be performed via automated machines that weave threads with high spatial accuracy. A characteristic feature of the appearance of the threads is a high degree of anisotropy. The anisotropic behavior is caused by depositing thin but long strings of thread. As a result, the stitched patterns convey both color and direction. Artists leverage this anisotropic behavior to enhance pure color images with textures, illusions of motion, or depth cues. However, designing colorful embroidery patterns with prescribed directionality is a challenging task, one usually requiring an expert designer. In this work, we propose an interactive algorithm that generates machine-fabricable embroidery patterns from multi-chromatic images equipped with user-specified directionality fields. We cast the problem of finding a stitching pattern into vector theory. To find a suitable stitching pattern, we extract sources and sinks from the divergence field of the vector field extracted from the input and use them to trace streamlines. We further optimize the streamlines to guarantee a smooth and connected stitching pattern. The generated patterns approximate the color distribution constrained by the directionality field. To allow for further artistic control, the trade-off between color match and directionality match can be interactively explored via an intuitive slider. We showcase our approach by fabricating several embroidery paths.
Thesis
Full-text available
This study is based on a modified design of the "2D quasi-steady flow around a flapping wing and its bubble film flow visualization" by our team, Huang, Hsin-Lun, in 2014, and Chih-Yu Jen, in 2019 to change from the forward flight to vertical hovering. Flapping wing micro-air-vehicles (FWMAVs) animate the small-space dexterous flight, hovering, and energy-saving characteristics of birds and insects, and are believed to have enlightenment for the development of bionic flight in the future. When designing FWMAVs, detailed unsteady aerodynamic information is required. Besides the computational fluid mechanics (CFD) technology, flow visualization is also needed to assist this research. The work firstly summarized the soap film flow visualization of a flapping wing along 3 different orientations and their corresponding formula for predicting lift and net thrust. Then the author mixes the bubble liquid for the experiment, improve the experimental design, acquire the images of the soap film experiment, processed and analyze the images finally the net thrust value of the flapping wing was obtained from the soap film image and finally compared with the wind tunnel results. This thesis innovatively used soap-film visualization with high-speed photography to record a 2D colorful flow field generated by a hovering flapping wing of a 10 cm span. In addition to the qualitative comparison of soap-film imaging with the conventional smoke tracing method, the subsequent processing of the soap-film images was also demonstrated. It includes how to quantify the soap film imaging into lift and thrust forces, and the comparison with the result of the wind tunnel force measurement. This new technique is quantitative in nature, and in the future, we hope to complement the qualitative wind tunnel smoke line experiment. The results reveal the variation of the flow field measurement data feasible to the wind tunnel and other techniques and are useful in the design of wing kinematics of a micro aerial vehicle.
Article
Curves play a fundamental role across computer graphics, physical simulation, and mathematical visualization, yet most tools for curve design do nothing to prevent crossings or self-intersections. This article develops efficient algorithms for (self-)repulsion of plane and space curves that are well-suited to problems in computational design. Our starting point is the so-called tangent-point energy , which provides an infinite barrier to self-intersection. In contrast to local collision detection strategies used in, e.g., physical simulation, this energy considers interactions between all pairs of points, and is hence useful for global shape optimization: local minima tend to be aesthetically pleasing, physically valid, and nicely distributed in space. A reformulation of gradient descent based on a Sobolev-Slobodeckij inner product enables us to make rapid progress toward local minima—independent of curve resolution. We also develop a hierarchical multigrid scheme that significantly reduces the per-step cost of optimization. The energy is easily integrated with a variety of constraints and penalties (e.g., inextensibility, or obstacle avoidance), which we use for applications including curve packing, knot untangling, graph embedding, non-crossing spline interpolation, flow visualization, and robotic path planning.
Article
In art, hatching means drawing patterns of roughly parallel lines. Even with skill and time, an artist can find these patterns difficult to create and edit. Our new artistic primitive—the hatching shape—facilitates hatching for an artist drawing from imagination. A hatching shape comprises a mask and three fields: width, spacing, and direction. Streamline advection uses these fields to create hatching marks. A hatching shape also contains barrier curves: deliberate discontinuities useful for drawing complex forms. We explain several operations on hatching shapes, such as the multi-dir operation, an easy way to depict 3D form using a hatching shape’s direction field. We also explain the modifications to streamline advection necessary to produce hatching marks from a hatching shape.
Article
Full-text available
Graph burning is a process to determine the spreading of information in a graph. If a sequence of vertices burns all the vertices of a graph by following the graph burning process, then such a sequence is known as a burning sequence. The graph burning problem consists in finding a minimum length burning sequence for a given graph. The solution to this NP-hard combinatorial optimization problem helps quantify a graph’s vulnerability to contagion. This paper introduces a simple farthest-first traversal-based approximation algorithm for this problem over arbitrary graphs. We refer to this proposal as the Burning Farthest-First (BFF) algorithm. BFF runs in $O(n^{3})$ steps and has a tight approximation factor of $3-2/b(G)$ , where $b(G)$ is the size of an optimal solution. The main attribute of BFF is that it has a better approximation factor than the state-of-the-art approximation algorithms for arbitrary graphs, which report an approximation factor of 3. Despite being simple, BFF proved practical when tested over some benchmark datasets.
Conference Paper
Full-text available
Flow visualization has been an active research field for several years and various techniques have been proposed to visualize vector fields, streamlines and textures being the most effective and popular ones. While streamlines are suitable to get rough information on the behavior of the flow, textures depict the flow properties at the pixel level. Depending on the situation the suitable representation could be streamlines or texture. This paper presents a method to compute a sequence of streamline-based images of a vector field with different densities, ranging from sparse to texture- like representations. It is based on an effective streamline placement algorithm and a production scheme that recalls those used in the multiresolution theory. Indeed a streamline defined at level J of the hierarchy is defined for all levels J'>J. A viewer allows us to interactively select the desired density while zooming in and out in a vector field. The density of streamlines in the image can also be automatically computed as a function of a derived quantity, such as velocity or vorticity.
Conference Paper
Full-text available
We present an algorithm for meshing surfaces that is a simple adaptation of a greedy "farthest point" technique proposed by Chew. Given a surface S, it progressively adds points on S and updates the 3-dimensional Delaunay triangulation of the points. The method is very simple and works in 3d-space without requiring to parameterize the surface. Taking advantage of recent results on the restricted Delaunay triangulation, we prove that the algorithm can generate good samples on S as well as triangulated surfaces that approximate S. More precisely, we show that the restricted Delaunay triangulation Del S of the points has the same topology type as S, that the Hausdorff distance between Del S and S can be made arbitrarily small, and that we can bound the aspect ratio of the facets of Del S . The algorithm has been implemented and we report on experimental results that provide evidence that it is very effective in practice. We present results on implicit surfaces, on CSG models and on polyhedra. Although most of our theoretical results are given for smooth closed surfaces, the method is quite robust in handling smooth surfaces with boundaries, and even non-smooth surfaces.
Conference Paper
Full-text available
We present a new approach to detecting isolated closed stream lines in 2D vector fields. This ap- proach is based on the idea of transforming the 2D vector field into an appropriate 3D vector field such that detecting closed stream lines in 2D is equivalent to intersecting certain stream surfaces in 3D. Contrary to pre-existing methods, our approach does not rely on any underlying grid structure of the vector field. We demonstrate the applicability and stability by applying it to a test data set.
Article
Flow visualization has been a very attractive component of scientific visualization research for a long time. Usu-ally very large multivariate datasets require processing. These datasets often consist of a large number of sample locations and several time steps. The steadily increasing performance of computers has recently become a driv-ing factor for a reemergence in flow visualization research, especially in texture-based techniques. In this paper, dense, texture-based flow visualization techniques are discussed. This class of techniques attempts to provide a complete, dense representation of the flow field with high spatio-temporal coherency. An attempt of categorizing closely related solutions is incorporated and presented. Fundamentals are shortly addressed as well as advantages and disadvantages of the methods.
Conference Paper
Imaging vector fields has applications in science, art, image pro- cessing and special effects. An effective new approach is to use linear and curvilinear filtering techniques to locally blur textures along a vector field. This approach builds on several previous tex- ture generation and filtering techniques(8, 9, 11, 14, 15, 17, 23). It is, however, unique because it is local, one-dimensional and inde- pendent of any predefined geometry or texture. The technique is general and capable of imaging arbitrary two- and three-dimen- sional vector fields. The local one-dimensional nature of the algo- rithm lends itself to highly parallel and efficient implementations. Furthermore, the curvilinear filter is capable of rendering detail on very intricate vector fields. Combining this technique with other rendering and image processing techniques — like periodic motion filtering — results in richly informative and striking images. The technique can also produce novel special effects.
Conference Paper
Accurate control of streamline density is key to producing several effective forms of visualization of two-dimensional vector fields. We introduce a technique that uses an energy function to guide the placement of streamlines at a specified density. This energy func- tion uses a low-pass filtered version of the image to measure the difference between the current image and the desired visual den- sity. We reduce the energy (and thereby improve the placement of streamlines) by (1) changing the positions and lengths of stream- lines, (2) joining streamlines that nearly abut, and (3) creating new streamlines to fill sufficiently large gaps. The entire process is iter- ated to produce streamlines that are neither too crowded nor too sparse. The resulting streamlines manifest a more hand-placed ap- pearance than do regularly- or randomly-placed streamlines. Ar- rows can be added to the streamlines to disambiguate flow direc- tion, and flow magnitude can be represented by the thickness, den- sity, or intensity of the lines.