15
The Open Source Project Andreas Fabri GeometryFacto ry Lutz Kettner Max Planck Institute

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

Embed Size (px)

Citation preview

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)