Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Daniel Fontijne is active.

Publication


Featured researches published by Daniel Fontijne.


IEEE Computer Graphics and Applications | 2003

Modeling 3D Euclidean geometry

Daniel Fontijne; Leo Dorst

This article compares five models of 3D Euclidean geometry-not theoretically, but by demonstrating how to implement a simple recursive ray tracer in each of them. Its meant as a tangible case study of the profitability of choosing an appropriate model, discussing the trade-offs between elegance and performance for this particular application. The models we compare are 3D linear algebra, 3D geometric algebra, 4D linear algebra, 4D geometric algebra, and 5D geometric algebra.


generative programming and component engineering | 2006

Gaigen 2:: a geometric algebra implementation generator

Daniel Fontijne

Geometric Algebra (GA) is an algebra that encodes geometry much better than standard techniques, which are mainly based on linear algebra with various extensions. Compared to standard techniques, GA has clearer semantics and a richer, more consistent language. This expresses itself, among others, in a much greater genericity of functions over the algebra. Exploiting this genericity efficiently is a problem that can be solved through generative programming.This paper describes our Geometric Algebra Implementation Generator Gaigen 2. Gaigen 2 synthesizes highly efficient GA implementations from the specification of the algebra. Functions over such algebras can be defined in a high-level coordinate-free domain-specific language, and Gaigen 2 transforms these functions into low-level coordinate-based code. This code can be emitted in any target language through a custom back-end. Benchmarks of our implementation show that the combination of GA and Gaigen 2 can rival the performance of standard geometry techniques, despite the greater abstraction and genericity of GA.To obtain this high performance, Gaigen 2 must adapt the generated code to the program that links to it. This is done via a profiling feedback loop. While running, the generated code makes a connection to the code generator. The generated code sends information about functions that should be optimized. The code generator registers this information and sends back new type information. After the program terminates, the code is regenerated according to the recorded profile. This profiling feedback technique may also be useful to implement other types of algebras.


eurographics | 2006

Competitive runtime performance for inverse kinematics algorithms using conformal geometric algebra

Dietmar Hildenbrand; Daniel Fontijne; Yusheng Wang; Marc Alexa; Leo Dorst

Conformal geometric algebra is a powerful tool to find geometrically intuitive solutions. We present an approach for the combination of compact and elegant algorithms with the generation of very efficient code based on two different optimization approaches with different advantages, one is based on Maple, the other one is based on the code generator Gaigen 2. With these results, we are convinced that conformal geometric algebra will be able to become fruitful in a great variety of applications in Computer Graphics.


Methods of Information in Medicine | 2010

Efficient Algorithms for Factorization and Join of Blades

Daniel Fontijne; Leo Dorst

Subspaces are powerful tools for modeling geometry. In geometric algebra, they are represented using blades and constructed using the outer product. Producing the actual geometrical intersection (meet) and union (join) of subspaces, rather than the simplified linearizations often used in Grassmann–Cayley algebra, requires efficient algorithms when blades are represented as a sum of basis blades. We present an efficient blade factorization algorithm and use it to produce implementations of the join that are approximately 10 times faster than earlier algorithms.


Geometric Algebra for Computer Science#R##N#An Object-oriented Approach to Geometry | 2007

10 – The vector space model: The algebra of directions

Leo Dorst; Daniel Fontijne; Stephen Mann

Publisher Summary When geometric algebra was developed in the first part of this book, it illustrated the principles with pictures in which vectors are represented as arrows at the origin, bi-vectors as area elements at the origin, and so on. This is the purest way to show the geometric properties corresponding to the algebra. The examples show this algebra of the mathematical vector space Rn can already be used to model useful aspects of Euclidean geometry, for it is the algebra of directions of n-dimensional Euclidean space. Some more properties of this model are explored in this chapter, with special emphasis on computations with directions in 2-D and 3-D. Most topics are illustrated with programming exercises at the end of the chapter. First, this chapter shows how the vector space model can be used to derive fundamental results in the mathematics of angular relationships. It gives the basic laws of trigonometry in the plane and in space, and shows how rotors can be used to label and classify the crystallographic point groups. Then it computes with 3-D rotations in their rotor representation, establishing some straightforward techniques to construct a rotor from a given geometrical situation, either deterministically or in an optimal estimation procedure. The logarithm of a 3-D rotor enables it to interpolate rotations. Finally, external camera calibration is given an application to show how the vector space model can mix directional and locational aspects.


Journal of Theoretical Biology | 2011

Reconstructing Rotations and Rigid Body Motions from Exact Point Correspondences Through Reflections

Daniel Fontijne; Leo Dorst

We describe a new algorithm to reconstruct a rigid body motion from point correspondences. The algorithm works by constructing a series of reflections which align the points with their correspondences one by one. This is naturally and efficiently implemented in the conformal model of geometric algebra, where the resulting transformation is represented by a versor. As a direct result of this algorithm, we also present a very compact and fast formula to compute a quaternion from two vector correspondences, a surprisingly elementary result which appears to be new.


Geometric Algebra for Computer Science#R##N#An Object-oriented Approach to Geometry | 2007

Spanning oriented subspaces

Leo Dorst; Daniel Fontijne; Stephen Mann

This chapter shows that a vector space is much more than merely a space of vectors, and that it is straightforward and useful to extend it computationally. The crucial idea here is to make the subspaces of vector space explicit elements of computation. To build the algebra of subspaces, the familiar lines and planes are revisited through the origin. This chapter investigates their geometrical properties carefully and formalizes those by the aid of a new algebraic outer product, which algebraically builds subspaces from vectors. The structure it produces is considered for the Grassmann space of subspaces of a vector space R n , and defines many terms to describe its features. Throughout this chapter, it considers a real n-dimensional vector space R n , but has no need for a metric; additionally, it only treats its homogeneous subspaces (i.e., subspaces containing the origin). The chapter starts with an n-dimensional vector space. However, the definition of a vector space in linear algebra is more general than what is needed in this book, being defined over arbitrary fields of scalars. To develop thinking about subspaces, the homogeneous subspaces of a 3-D space are considered.


Geometric Algebra for Computer Science#R##N#An Object-oriented Approach to Geometry | 2007

18 – Implementation issues

Leo Dorst; Daniel Fontijne; Stephen Mann

Publisher Summary The first two parts of this book have given an abstract description of geometric algebra that is mostly free of coordinates and other low-level implementation details. Even though many programming examples have been provided, this may still have left a somewhat unreal feeling about geometric algebra, and an impression that any implementation of geometric algebra would be computationally prohibitive in a practical application. To address these concerns, Part III of this book gives details on how to create an efficient numerical implementation of geometric algebra. It describes the implementation of all products, operations, and models that were used in the preceding parts. The description is from the viewpoint of representing multi-vectors as a weighted sum of basis blades, an approach that was already hinted at in earlier chapters. This is by far the most common way of implementing geometric algebra, although other approaches are also possible. The ultimate goal of this book is efficient numerical implementation, not symbolic computer algebra. An efficient geometric algebra implementation uses symbolic manipulations only to bootstrap the implementation, and not during actual run-time computations. This book has tried to keep the implementation description independent of any particular implementation.


Geometric Algebra for Computer Science (Revised Edition)#R##N#An Object-Oriented Approach to Geometry | 2009

Chapter 1 – Why Geometric Algebra?

Leo Dorst; Daniel Fontijne; Stephen Mann

Publisher Summary This chapter provides an introduction to geometric algebra, a powerful computational system used to describe and solve geometrical problems. The main features of geometric algebra includes that vectors can be used to represent aspects of geometry, but the precise correspondence is a modeling choice. Geometric algebra offers three increasingly powerful models for Euclidean geometry. Geometric algebra has products to combine vectors to new elements of computation. They represent oriented subspaces of any dimension, and they have rich geometric interpretations within the models. A linear transformation on the vector space dictates how subspaces transform; this augments the power of linear algebra in a structural manner to the extended elements. Geometric objects and operators are represented on a par and are exchangeable: objects can act as operators, and operators can be transformed such as geometrical objects. Geometric algebra focuses on the subspaces of a vector space as elements of computation. It constructs these systematically from the underlying vector space and extends the matrix techniques to transform them, even supplanting those completely when the transformations are orthogonal. In the vector space model and the conformal model, orthogonal transformations are used to represent basic motions of Euclidean geometry. This makes that type of linear transformation fundamental to doing geometry in the models.


Geometric Algebra for Computer Science (Revised Edition)#R##N#An Object-Oriented Approach to Geometry | 2009

Chapter 20 – The Linear Products and Operations

Leo Dorst; Daniel Fontijne; Stephen Mann

Publisher Summary This chapter presents two ways to implement the linear products and operations of geometric algebra. Both implementation approaches are based on the linearity and distributivity of the products and operations. The first approach uses linear algebra to encode the multiplying element as a square matrix acting on the multiplied element, which is encoded as a column matrix. The second approach is effectively a sparse matrix approach storing multivectors as lists of weighted basis blades and distributing the work of computing the products and operations to the level of basis blades. A multivector from an n-dimensional geometric algebra can be stored as a 2n × 1 column matrix. Each element in the matrix is a coordinate that refers to a specific basis blade. The elements of geometric algebra form a linear space, and these linear operations are implemented trivially in the matrix approach that involves the addition of elements performed by adding the matrices. The unary linear operations of reversion, grade involution, and Clifford conjugation can also be implemented as matrices. The entries of these matrices need to be set according to the corresponding operations on the basis blades in row matrix L.

Collaboration


Dive into the Daniel Fontijne's collaboration.

Top Co-Authors

Avatar

Leo Dorst

University of Amsterdam

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Marc Alexa

Technical University of Berlin

View shared research outputs
Researchain Logo
Decentralizing Knowledge