[kde-edu]: GSoC Proposal: KidDraw

Cheetah cheetah at simply-life.net
Fri Mar 21 23:22:41 CET 2008


Since I'm new here, I'll first introduce myself: I'm Wouter Haffmans, a 23 
year old student Computer Science at the University of Technology Eindhoven 
(in the Netherlands).  I want to submit a proposal for GSoC next week, with a 
new suggestion for KDE Edu, which will hopefully get me involved in the KDE 
community. So far I've only been following development, and I think it's time 
for me to start actively participating. GSoC seems to be the perfect 
opportunity. So, here's the idea:

In the past I've made a small and simple drawing application as a high school 
assignment. The target group were young children who are not able to use a 
computer mouse all too well yet. That assignment was made in Delphi. As I 
myself have a son now, I decided to remake that application to Qt 4. Part of 
it is done, but it still needs lots of work and improvement.

I want to submit KidDraw (which is its very original name) as GSoC project 
to help KDE Edu to something new and unique. I think it fits KDE Edu best 
since it helps kids learn how to use the mouse and explore their creativity 
in a fun way, though I suppose it could also fit in KDE Graphics... I'm not 
entirely sure about that.

This has been done for KidDraw so far (see  
http://svn.simply-life.net/KidDraw/trunk/ for the current code):
The UI is simple, kid-friendly. It already shows the canvas, which is 
QGraphics based. The "live" rendering is done on an extra cached QImage 
though (like the Qt scribbly example), as that seemed to perform much better 
in my tests. Drawing is done by clicking any mouse button (not just the left 
one). On the left and right the color palette is shown: simply hovering the 
mouse over a color will select it. The same goes for the line widths, which 
can be picked at the bottom. The buttons are big and thus easy to hit.

The canvas also already supports the loading of a background image, which can 
be used for coloring sheets as well as connect-the-dots like stuff.

Tasks that would be for GSoC:
- KDEify KidDraw, it's just a Qt app now. It already uses CMake, but other 
than that it's all just Qt 4.

- When changing a palette, the lines that were already drawn will need to 
change colors as well.

- Allow saving and reloading of pictures. All line items will need to remain 
intact (because of the palette changes).

- Create "Image Pickers" at the top of the canvas, which show thumbnails of 
saved images. Clicking one loads the image into the canvas, and also saves 
the canvas image to that slot. This way a child doesn't need to know about 
files or filenames.

- Make a big "Clear" button to clear the canvas.

- Custom color palettes, possibly with HotNewStuff integration.

- Export images, saving them to a PNG/JPG/SVG file on disk. This is something 
parents probably will need to help with, so its UI can be more "complicated" 
(i.e. a menu).

- Printing support to print the canvas image.

- UI to load background images.

- UI for editing (and creating new) color palettes.

- Settings panel, especially with settings on when clicking/dragging is 
necessary (for younger kids clicking to toggle the pen up/down may be better 
than having to drag with the mouse pressed, etc).

- Option to set a picture as desktop background. I'm not exactly sure how 
feasable it is to make this cross platform, considering obvious differences 
between Plasma, Windows and OS X.

- A "Color Sheet" mode, which makes a click on the canvas fill the area with 
the selected color rather than drawing lines.

- If there's more time: a "Connect the dots" mode, which requires the user to 
draw lines from dot to dot (again using polygons as the points of the dots). 
Once all dots have been connected, KidDraw could switch to Color Sheet mode 
to allow filling of the drawn lines. To add a "surprise" effect, the dots that 
do not need to be connected yet (e.g. dots 3 and higher at the start) could 
remain hidden until they need to be visible.

Altogether I think there is more than enough to be done during the three 
months of GSoC, but more suggestions, ideas, criticism, advice etc. is more 
than welcome before I submit my GSoC application.


More information about the kde-edu mailing list