14187938
Smooth meshes for sketch-based freeform modeling
This paper describes a framework for introducing visually smooth surfaces into sketch-based freeform modeling systems. An existing sketch-based freeform modeling system generates rough polygonal meshes with uneven triangulations after each operation. Our approach generates a dense, visually smooth polygonal mesh by beautifying and refining the original rough mesh. A beautification process generates near-equilateral triangles with a near-uniform distribution of vertices to mask the noise and bad sampling of the uneven mesh. The vertices are distributed on a smoothed surface that approximately interpolates the original mesh. Refinement generates a smooth, dense mesh by subdividing the beautified mesh and moving the vertices to the interpolative surface. The smooth interpolative surface is computed via implicit quadratic surfaces that best fit the mesh locally in a least-squares sense.
7017581
Multi-finger cursor techniques
The mouse cursor acts as a digital proxy for a finger on graphical displays. Our hands, however, have ten fingers and many degrees of freedom that we use to interact with the world. We posit that by creating graphical cursors that reflect more of the hand's physical properties, we can allow for richer and more fluid interaction. We demonstrate this idea with three new cursors that are controlled by the user's fingers using a multi-point touchpad. The first two techniques allow for simultaneous control of several properties of graphical objects, while the third technique makes several enhancements to object selection.
7967082
An annotation system for 3D fluid flow visualization
Annotation is a key activity of data analysis. However, current data analysis systems focus almost exclusively on visualization. We propose a system which integrates annotations into a visualization system. Annotations are embedded in 3D data space, using the Post-it metaphor. This embedding allows contextual-based information storage and retrieval, and facilitates information sharing in collaborative environments. We provide a traditional database filter and a Magic Lens filter to create specialized views of the data. The system is customized for fluid flow applications, with features which allow users to store parameters of visualization tools and sketch 3D volumes.<<ETX>>
7238760
Analyzing bounding boxes for object intersection
Heuristics that exploit bouning boxes are common in algorithms for rendering, modeling, and animation. While experience has shown that bounding boxes improve the performance of these algorithms in practice, the previous theoretical analysis has concluded that bounding boxes perform poorly in the worst case. This paper reconciles this discrepancy by analyzing intersections among <italic>n</italic> geometric objects in terms of two parameters: α an upper bound on the <italic>aspect ratio</italic> or elongatedness of each object; and &sgr; an upper bound on the <italic>scale factor</italic> or size disparity between the largest and smallest  objects. Letting <italic>K<subscrpt>o</subscrpt></italic> and <italic>K<subscrpt>b</subscrpt></italic> be the number of intersecting object       pairs and bounding box pairs, respectively, we analyze a ratio measure of the   bounding boxes'  efficiency, <inline-equation> <f> <g>r</g>=K<inf>b</inf>/<fen lp="par">n+K<inf>o</inf><rp post="par"></fen> </f> </inline-equation>. The analysis proves that <inline-equation> <f> <g>r</g>=O<fen lp="par"><g>a</g><rad><rcd><g>s</g></rcd></rad> <lim align="r"><op><rf>log</rf></op><ul>2</ul></lim><g>s</g><rp post="par"></fen> </f> </inline-equation> and <inline-equation> <f> <g>r</g>=<g>W</g><fen lp="par"><g>a</g><rad><rcd><g>s</g></rcd></rad> <rp post="par"></fen></f> </inline-equation>.
 One important consequence is that if α and &sgr; are small constants (as is often the case in practice), then<italic>K<subscrpt>b</subscrpt></italic>= <italic>O</italic>(<italic>K<subscrpt>o</subscrpt></italic>)+<italic>O</italic>(<italic>n</italic>, so an algorithm that uses bounding boxes has time complexity proportional to the number of actual object intersections. This theoretical result validates the efficiency that bounding boxes have demonstrated in practice. Another consequence of our analysis is a proof of the output-sensitivity of an algorithm for reporting all intersecting pairs in a set of <italic>n</italic> convex polyhedra with constant α and &sgr;. The algorithm takes time <italic>O</italic>(<italic>n</italic>log<supscrpt><italic>d</italic>−1</supscrpt><italic>n</italic>+<italic>K<subscrpt>o</subscrpt></italic>log<supscrpt><italic>d</italic>−1</supscrpt><italic>n</italic>) for dimension <italic>d</italic> = 2, 3. This running time improves on the performance of previous algorithms, which make no assumptions about α and &sgr;.
6983775
Modeling surfaces of arbitrary topology using manifolds
Manifolds describe complicated objects that are locally $\Re\sp{n}$ by defining a set of overlapping maps from the object to $\Re\sp{n}$. In this thesis we present a general technique for inverting that process: we define a complicated object from a set of overlapping subsets of $\Re\sp{n}$. We first present a constructive definition that describes how to perform such a construction in general. We then apply this construction to the particular problem of defining surfaces of arbitrary topology. The surface is built in two steps: we build a manifold with the correct topology then embed the manifold into $\Re\sp3$ using traditional spline techniques. The surface inherits many of the properties of B-splines: local control, a compact representation, and guaranteed continuity of arbitrary degree. The surface is specified using a polyhedral control mesh instead of a rectangular one; the resulting surface approximates the polyhedral mesh much as a B-spline approximates its rectangular control mesh. Like a B-spline, the surface is a single, continuous object.
2126257
Multiperspective panoramas for cel animation
We describe a new approach for simulating apparent camera motion through a 3D environment. The approach is motivated by a traditional technique used in 2D cel animation, in which a single background image, which we call a multiperspective panorama, is used to incorporate multiple views of a 3D environment as seen from along a given camera path. When viewed through a small moving window, the panorama produces the illusion of 3D motion. In this paper, we explore how such panoramas can be designed by computer, and we examine their application to cel animation in particular. Multiperspective panoramas should also be useful for any application in which predefined camera moves are applied to 3D scenes, including virtual reality fly-throughs, computer games, and architectural walk-throughs. CR Categories: I.3.3 [Computer Graphics]: Picture/Image Generation. Additional
17667421
Assessing undergraduate experience of continuous integration and test-driven development
A number of agile practices are included in software engineering curricula, including test-driven development. Continuous integration often is not included, despite it becoming increasingly common in industry to code, test, and integrate at the same time. This paper describes a study whereby software engineering undergraduates were given a short intensive experience of test-driven development with continuous integration using an environment that imitated a typical industrial circumstance. Assessment was made of students' agile experience rather than of project deliverables, using a novel set of process measures that examined students' participation and performance in agile testing. Results showed good participation by student pairs, and clear understanding of agile processes and configuration management. Future work will investigate automation of the assessment of continuous integration and configuration management server data.
1858523
Does Requiring Students to Produce Alternative Solutions Promote a High Quality of Software Design
27941486
Distributed probabilistic diagnosis of MCMs on large area substrates
This paper addresses the issue of testing MCMs on large-area substrates. The cost of testing each MCM may be as high as 40% of the total manufacturing cost. It is critical that the test process be parallelized in order that multiple MCMs may be tested for the cost of testing one MCM. With this objective in mind, we propose a distributed probabilistic diagnosis algorithm for MCMs on large-area substrates. Our algorithm performs better than the existing diagnosis algorithms and can correctly identify almost all MCMs even when the yield is very low (35%). Further it provides upto an order of magnitude reduction in test application time as opposed to serial MCM probe test.
28448708
The Design of a Pretty-printing Library
In this chapter we have considered the design of combinator libraries. We saw how studying the algebraic properties of the combinators desired can both help to suggest natural choices of representation, and guide the implementation of the operators. We saw several examples — lists, monads, and a pretty-printing library. For this kind of program development we need a language with higher-order functions and lazy evaluation, for which equational reasoning is valid; in other words, Haskell is ideally suited.
40790646
A Type Specialisation Tutorial
The essence of partial evaluation is beautifully simple: we just take a program, together with values of some of its inputs; we perform the operations that depend only on known inputs, build a new program from the other operations, and finally obtain a residual program which solves the same problem as the original for a subclass of the cases. Work by Neil Jones and his group over the past decade and a half has demonstrated just how powerful this simple idea really is.