GSoC 2012

From LibreCAD wiki
Revision as of 20:34, 27 February 2012 by Maqifrnswa (Talk | contribs)

Jump to: navigation, search



LibreCAD plans on participating in GSoC 2012 (if accepted). This page will bring together ideas from developers to give Google and perspective students lists of contacts and potential projects.

What is an Ideas list?


An Ideas list should be a list of suggested student projects. This list is meant to introduce contributors to your project's needs and to provide inspiration to would-be student applicants. It is useful to classify each idea as specifically as possible, e.g. "must know Python" or "easier project; good for a student with more limited experience with C++." If your organization plans to provide an application template, it would be good to include it on your Ideas list. Keep in mind that your Ideas list should be a starting point for student applications; we've heard from past mentoring organization participants that some of their best student projects are those that greatly expanded on a proposed idea or were blue-sky proposals not mentioned on the Ideas list at all. A link to a bug tracker for your open source organization is NOT an ideas list.

Other interesting/useful links:

LibreCAD Idea List Template

from CC-BY-SA-3.0

Title of Project

Brief explanation:

Expected results:

Knowledge Prerequisite:


When adding an idea to this section, please try to include the following data:

  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • your name and email address for contact (if you're willing to be a mentor)
  • backup mentor name and email address for contact

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

For students:

See the potential projects below. It is a VERY good idea to contact potential mentors prior to applying to help in your application. It also would be helpful to subscribe to our mailing list ( to introduce yourself and visit our IRC channel (#librecad on Also explore our feature request tracker on SourceForge ( for additional ideas if you'd like to propose something else.

Potential projects (to be categorized later):

Plugin Interface

Brief explanation:

Expected results:

Knowledge Prerequisite:


DWG Support

Brief explanation:

Expected results:

Knowledge Prerequisite:


Python Scripting

Brief explanation: Provide a script based command line interface for CAD.

Expected results: LibreCAD provides a unified command line interface for actions, and can be run in both an interactive cli mode and a non-interactive batch processing mode.

Knowledge Prerequisite: C++, Python

Mentor: Ries, dli

CAD Engine Features

Brief explanation: LibreCAD needs more features for its CAD engine.

Some examples could be:

A new spline library to support features like, spline fitting, trimming, hatching, etc.;

Support for more CAD entity types and more drawing methods for entity types;

Improve support for projection mode, in addition to isometric projection within LibreCAD. Need to handle 3D distance properly in all projection modes;

Support for geo-referenced data: support for georeferenced image;

Support for Voronoi Diagram. While Voronoi diagram itself is an interesting feature to support, the requested Offset feature can be implemented by Voronoi analysis.

improve hatch algorithm hatching by flood fill. The current hatch creation requires user to supply a closed contour. An automatic contour detection algorithm which supports all possible entity types is desired.

Expected results: More CAD features supported by LibreCAD. Significant addition of CAD features is expected on the chosen part of the LibreCAD CAD engine.

Knowledge Prerequisite: computational geometry, C++

Mentor: awallin, dli

General GUI improvement

Brief explanation: Some detailed ideas have been proposed here: ideas on GUI improvement.

Support user defined keyboard shortcuts.

Use the Qt graphic view framework to improve painter speed for displaying of drawing.

Expected results: Improved GUI for better user experience.

Knowledge Prerequisite: Qt, C++

Mentor: Ries, dli

Multi-threading Support

Brief explanation: LibreCAD does not support multi-threading yet, while overall performance and GUI responsive time can benefit from a multi-threading design.

Parallel processing is also expected for CAD engine related operations.

Expected results: Multi-threading support and better user experience.

Knowledge Prerequisite: Qt, C++

Mentor: Ries, dli