Christopher Dyken


GitHub profile
ShaderToy profile
SourceForge Profile
LinkedIn profile

Christopher Dyken, PhD

Principal Engineer at Kongsberg Digital.



ComputeStuff: CUDA implementations of Histopyramid 5:1-compaction, Scan, and Histopyramid 5:1-based Marching Cubes. MIT-license.

CDUtils: Single-header C99 utils. Currently contains an XML parser. MIT license.

MeshTool: Fast OBJ-viewer. My Vulkan playground. MIT License.

AmigaCoding: Revisiting Amiga assembly. Currently contains a scroller and filled & clipped convex vector graphics. MIT license.

HPMC: Histopyramid-based OpenGL Marching Cubes. GPL 2.0 license.

FRView: An efficient viewer for medium-sized reservoir simulations. GNU affero 3.0 license.

Eye candy


(Some of these have become a bit dated...)

Blend of DFT waves and linear waves
NPR experiments
Old-skool Amiga rubber-vector
Echosounder visualization

Blog posts


2020-05-31: Duct-taping onnx-models into a composite onnx-model

2019-08-18: Who to blame for the bytes in the WASM?

2019-07-02: Adventures in the machine-learning land of drones & lidars, part II

2019-06-21: Adventures in the machine-learning land of drones & lidars, part I



C. Dyken, K. O. Lye, J. Seland, E. Bjønnes, J. M. Hjelmervik, J.O. Nygaard, T.R. Hagen,
A Framework for OpenGL Client-Server Rendering,
Proceedings of the 2012 International Workshop on GPU Computing in Clouds, IEEE, 2012.

A. R. Brodtkorb, C. Dyken, T. R. Hagen, J. M. Hjelmervik, O. O. Storaasli,
State-of-the-Art in Heterogeneous Computing,
Journal of Scientific Programming, 18(1), 2010, pp. 1-33 .

Node level heterogeneous architectures have become attractive during the last decade for several reasons: compared to traditional symmetric CPUs, they offer high peak performance and are energy and/or cost efficient. With the increase of fine-grained parallelism in high-performance computing, as well as the introduction of parallelism in workstations, there is an acute need for a good overview and understanding of these architectures. We give an overview of the state-of-the-art in heterogeneous computing, focusing on three commonly found architectures: the Cell Broadband Engine Architecture, graphics processing units (GPUs), and field programmable gate arrays (FPGAs). We give a review of hardware, available software tools, and an overview of state-of-the-art techniques and algorithms. We further present a qualitative and quantitative comparison of the architectures, and give our view on the future of heterogeneous computing.


C. Dyken, M. Dæhlen, T. Sevaldrud,
Simultaneous Curve Simplification,
Journal of Geographical Systems 11 (3), 2009, pp. 273-289.

In this paper we present a method for simultaneous simplification of a collection of piecewise linear curves in the plane. The method is based on triangulations, and the main purpose is to remove line segments from the piecewise linear curves without changing the topological relations between the curves. The method can also be used to construct a multi-level representation of a collection of piecewise linear curves. We illustrate the method by simplifying cartographic contours and a set of piecewise linear curves representing a road network.

C. Dyken, M. Reimers, J. Seland,
Semi-uniform Adaptive Patch Tessellation,
Computer Graphics Forum, 28(8), 2009, pp. 2255-2263.

We present an adaptive tessellation scheme for surfaces consisting of parametric patches. The resulting tessellations are topologically uniform, yet consistent and watertight across boundaries of patches with different tessellation levels. Our scheme is simple to implement, requires little memory, and is well suited for instancing, a feature available on current GPUs that allows a substantial performance increase. We describe how the scheme can be implemented efficiently and give performance benchmarks comparing it to some other approaches.


C. Dyken,
Topics in mesh-based modelling and computer graphics
Philosophiae Doctor (Ph.D.) thesis, IfI, UiO, 2008.

Compilation of the papers "Transfinite mean value interpolation", "Preferred directions for resolving the non-uniqueness of Delaunay triangulations", "Simultaneous curve simplification", "Real-time linear silhouette enhancement", "Real-time GPU silhouette refinement using adaptively blended Bezier patches", "Semi-uniform adaptive patch tessellation", and "High-speed marching cubes using histogram pyramids". With introduction.


C. Dyken, G. Ziegler, C. Theobalt, H.-P. Seidel,
High-speed Marching Cubes using Histogram Pyramids,
Computer Graphics Forum 27 (8), 2008, pp. 2028-2039.

We present an implementation approach for Marching Cubes on graphics hardware for OpenGL 2.0 or comparable APIs. It currently outperforms all other known GPU-based iso-surface extraction algorithms in direct rendering for sparse or large volumes, even those using the recently introduced geometry shader capabilites. To achieve this, we outfit the HistoPyramid algorithm, previously only used in GPU data compaction, with the capability for arbitrary data expansion. After reformulation of Marching Cubes as a data compaction and expansion process, the HistoPyramid algorithm becomes the core of a highly efficient and interactive Marching Cube implementation. For graphics hardware lacking geometry shaders, such as mobile GPUs, the concept of HistoPyramid data expansion is easily generalized, opening new application domains in mobile visual computing. Further, to serve recent developments, we present how the HistoPyramid can be implemented in the parallel programming language CUDA, by using a novel 1D chunk/layer construction.


C. Dyken, M. S. Floater,
Transfinite mean value interpolation,
Computer Aided Geometric Design 26, 2009, pp. 117-134.

Transfinite mean value interpolation has recently emerged as a simple and robust way to interpolate a function f defined on the boundary of a planar domain. In this paper we study basic properties of the interpolant, including sufficient conditions on the boundary of the domain to guarantee interpolation when f is continuous. Then, by deriving the normal derivative of the interpolant and of a mean value weight function, we construct a transfinite Hermite interpolant and discuss various applications.


C. Dyken, M. Reimers, J. Seland,
Real-Time GPU Silhouette Refinement using adaptively blended Bezier Patches,
Computer Graphics Forum 27 (1), 2008, pp. 1-12.

We present an algorithm for detecting and extracting the silhouette edges of a triangle mesh in real time using GPUs (Graphical Processing Units). We also propose a tessellation strategy for visualizing the mesh with smooth silhouettes through a continuous blend between Bézier patches with varying level of detail. Furthermore, we show how our techniques can be integrated with displacement and normal mapping. We give details on our GPU implementation and provide a performance analysis with respect to mesh size.


C. Dyken, M. S. Floater,
Preferred directions for resolving the non-uniqueness of Delaunay triangulations,
Computational Geometry: Theory and Applications 34, 2006, pp. 96-101.

This note proposes a simple rule to determine a unique triangulation among all Delaunay triangulations of a planar point set, based on two preferred directions. We show that the triangulation can be generated by extending Lawson's edge-swapping algorithm and that point deletion is a local procedure. The rule can be implemented exactly when the points have integer coordinates and can be used to improve image compression methods.


Real-time Linear Silhouette Enhancement,
Mathematical Methods for Curves and Surfaces: Tromsø 2004, M. Dæhlen, K. Mørken, and L. L. Schumaker (eds.), 2005, pp. 145-156.

We present a simple method for improving the rendered appearance of coarse triangular meshes. We refine and modify the geometry along silhouette edges in real-time, and thus increase the geometric complexity only where needed. We address how to define the improved silhouette and a method to blend the modified and the original geometry continuously.


C. Dyken,
The Simplified Surface Spline,
Candidatus Scientiarum (M.Sc.) thesis, IfI, UiO, 2003.

This thesis studies the problem of using surface splines as an approximation basis. The simplified surface spline basis, a slight simplification of the C¹-surface spline construction of Jörg Peters, is presented. The simplified surface does not guarantee a C¹ surface, but has explicit formulas, explicit basis functions and known dimension. In addition, it resides close to the C¹-surface spline. The simplified surface spline basis is employed in interpolation, least squares approximation and faired least squares approximation. In addition, the mesh notation, a notation for writing algorithms on polyhedral meshes in a concise and mathematical way, is presented.



A Peek on Numerical Programming in Perl and Python,
Small note comparing numerical programming in high-level languages and C, IfI/CMA, UiO, 2004.

Farver og interpolasjon,
Essay on colour, colourspaces and interpolation in norwegian, IfI, UiO, 2000.



GPU-Accelerated Data Expansion for the Marching Cubes Algorithm,
GPU Technology Conference,
San Jose, California, USA, 2010-09-22

GPU Programming strategies for HPC,
NOTUR 2010,
Bergen, Norway, 2010-05-20

GPU Computing,
Software Development Workshop on High-Performance Computing,
SINTEF Petroleum, 2009-12

Parallel computing in video memory: A key to interactive simulations and photorealistic virtual experiences,
The Industrial Gaming Track,
5th International Conference on Integrated Operations in the Petroleums Industry,
Trondheim, Norway, 2009-09-29.

Semi-uniform tessellations,
Kongsberg SIM Hackaton,
Hadeland, Norway, 2008-05-06.

HistoPyramid-based stream compaction and expansion,
Winter School on Parallel Computing,
Geilo, Norway, 2008-01-24.

HistoPyramid stream compaction and expansion,
Advanced Computer Graphics and Vision seminar series,
Technischen Universität Graz, Austria, 2007-10-23.

Transfinite mean value interpolation,
Multivariate Approximation and Interpolation with Applications (MAIA) Conference,
Ålesund, Norway, 2007-08-25

Efficient gather operations using histogram pyramids,
GPU as a computational resource workshop,
Oslo, Norway, 2006.

Web-splines for solving PDE's,
CMA PDE seminar series,
Oslo, Norway, 2006.

Preferred directions for resolving the non-uniqueness of Delaunay triangulations,
CMA internal seminar,
Oslo, Norway, 2004.

Improving silhouettes of coarse triangle meshes,
The Sixth International Conference on Mathematical Methods for Curves and Surfaces,
Tromsø Norway, 2004.

Object Orientation in Perl,
Guest lecture, INF5660: Advanced Problem Solving using High-level Languages,
IfI/UiO, Oslo, Norway, 2004

Supervised students


Martin Lilleeng Sætra (PhD fellow) Erik W. Bjønnes (MSc), Lars Jahr Røine (MSc)



INF3320/INF4320 Computer Graphics and Geometric Modelling.
Teaching: 2007, 2006, 2005, 2004, Tutoring: 2003.