Gerbv is gEDA's Gerber file viewer. However, it has the potential to become more than a viewer – it can become a complete CAM tool, allowing (simple) editing of Gerbers, like moving or deleting tracks, changing drill hole diameters, changing pad or ring diameters, and so on.
Difficulty = 4
Most commercial Gerber file viewers allow the user to check if a Gerber file meets certain layout requirements (like minimum clearances between traces, etc). This project would involve implementing DRC capability into Gerbv, either by importing existing code from PCB, or writing new code. This capability should ideally be put into the libgerbv library, allowing other programs to tap into the DRC capability and allow scripting support.
This project involves writing code which will allow gerbv to autoidentify footprints via some type of pattern matching (e.g. 2D correlation with known footprints). Then, gerbv would store the (X, Y) coordinates of each identified footprint's centroid. The idea is to produce a pick-place file for automated board stuffing using only the information contained in a set of Gerber files. This would make a good project for somebody with some AI and/or machine vision background.
Difficulty = 5
In this project, the student would implement a feature in which gerbv would read in a gerber, and then export a file which could be read by gEDA/PCB. The .pcb file generated wouldn't need to be much more than the individual graphical elements held in the Gerber since a Gerber file doesn't have the concept of e.g. footprints or text on the silkscreen layer. However, the ability to create .pcb files would be very useful, since the one could use the full power of PCB when editing legacy Gerbers.
Difficulty = 3