Transcript
Page 1: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

The Open Source Project

Andreas FabriGeometryFactory

Lutz KettnerMax Planck Institute

Page 2: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 2

Outline

• Current Status• Towards a Component Repository• Towards an Open Source Project

Page 3: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 3

History and Mission Statement

“Make the large body of geometric algorithms developed in the field of computational geometry available for industrial applications”

Started in 1996 as joined project of:

ETH Zurich, INRIA, MPI für Informatik, Tel-Aviv U,

Utrecht U, Trier U, FU Berlin

Page 4: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 4

Development Process

• Editorial board– receives/reviews submissions

• Developer manual, manual tools,one week developer meetings

• Version management system• Bug tracking system• Three internal releases per week• Testsuites

Page 5: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 5

The CGAL Class Library

• 1200 C++ classes, 300 KLOC, 1100 p manual

• 40 developer years• supported platforms

– Linux, Irix, Solaris, Windows (OS X)– g++, SGI CC, SunPro CC, VC7, Intel, PG CC

• Release cycle of 12 months

• 6000 downloads per year

Page 6: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

Towards a Component Repository

Page 7: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 7

Gems vs. Libraries

• Gems– self contained, but often hard to combine– combination means reduncancy

• Libraries – often tightly coupled– often derivation hierarchies with single root

• Components – more standardized than gems– more lightweight than a library

Page 8: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 8

CGAL Component Model

Generic programming: Specification of concepts

like NumberType, Kernel,...

GMP Core leda::real

boost STL

CGAL::Kernelleda::Rat_kernel

Kernelconcept

CGAL::Datastructure

double

NumberTypeconcept

Page 9: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 9

template < typename Kernel >class Delaunay_triangulation_2 {

void insert(Kernel::Point_2 t) {

if(Kernel::Orientation()(p,q,t)==..)

if((Kernel::Incircle()(p,q,r,t)) }};

CGAL Component Model

Generic programming: Specification of concepts

like Kernel, TriangulationVertex_2,...

Page 10: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 10

CGAL Component Repository

• Results in small overseable units• Allows differentiation

– maturity vs. early availability– access and licenses (open source,

commercial)

• Scales up– specialized datastructures– contributions

• Allows contributions to keep their identity

Page 11: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

Towards an Open Source Project

Page 12: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 12

Open Source License

• A guarantee that CGAL remains free• Goals

– promote CGAL as a standard for users – incite people to code CGAL-style

• Different licenses for different parts– LGPL for Kernel and Support Library– QPL for Basic Library

Page 13: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 13

Becoming a Project Partner• A typical CV

– CGAL user assimilates design ideas – Discussions on cgal-user mailing list– Submission to Editorial Board– Invitation to internal ressources

• Legal aspect– Researchers and students do not own their

code– We need ok from technology transfer office

Page 14: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 14

Project Partners/Contributors

Page 15: The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute

A.Fabri, L.Kettner CGAL 15

A Good Moment to Join

• Library has reached a critical mass

• Acceptance of exact computing paradigm

• Maturity of compilers• Acceptance of

generic programming (STL)


Recommended