I am working on software to make patterns for fitted mosaics. By this I mean mosaics that need to be cut, to make a picture. This would include marquetry, intarsia, pietre dure, stained glass, fancy stone tile work, fancy parquetry floors, applique quilting/sewing, and fancy puzzle making. With of each these crafts, the pieces must all fit together, and even sometimes have a constant gap between pieces. Sometimes the pieces can't have any internal corners, because of the tool they are being cut with. The drawings must "know" how the pieces fit together. Also one has to be able to draw curves. I don't know of any drawing or cad program that can do all of this.
This software will also have the ability to generate files for CNC machines to run off of. So far I have written a program that takes PostScript files and turns them into g-codes to power my CNC routers. More specifically it pulls the bezier curves out of the PostScript files and uses them. It works good, now only if I can get my machines to work better.
I hired a Russian scientist to write the mosaic picking software. It did not work out so well, I could have picked someone more interested. For what it's worth I did pay him to write an intro paper. You can see that at reprev.pdf
I did talk to another guy in India by the name of K K Roy.
We could not come up with a fair way to price the writing of the software, so the deal fell through. Maybe I should say I could not come up with enough money! He had this to says about it:
The end objective of the software should be a list of Island
objects - an island is a piece of wood in some color which has a
definite location and shape.
Here is a list of Island's properties:
1. Ordinal number
3. No of Holes - n
4. A list of n hole islands nos.
5. 4 points touching the minimum rectangle containing the Island
6. Contour of the Island
7 Island no., if any, of which it is an island
I like a challenge, but this mosaic picking software that I envisioned I would write on the Halloween weekend of 1996 seems farther away then it ever was! One of the reasons I wanted to try the idea was, I wanted to learn how to write program better. Well I have been a computer consultant for 2 years now, and have learned a few things. There is a difference between programmers and computer scientists. That said, I am not sure that I want to be computer scientist, only time will tell. This type of software involves a lot complex algorithms best writing in C++, a language that I need much more time at to master. I have relaxed my expectations. Now I am only looking to write software and build machines that make mosaics out of square tiles. Maybe after I have achieved those goals I can think about curvy and complex pieces.
This month friends of mine Adam Nelson and Greg Stallard are writing a mosaic tile picking program in C++. Here is a preliminary test output of the software. Many more improvements are yet too be done, but I think it's looking good so far.
|One 12" x 8" x 1/4" piece of cedar
chipboard was scanned. This is the good smelling stuff
that is put into closets. Each virtual piece is 1/4"
square. In the picture there are 48 by 32 pieces, 1536
pieces in all. In the software they were matched and
reassembled to create the output image. On this one we
cheated and used some of the pieces more then once,
something that would be impossible in real life. As I
said the matching process can be much better, be this was
It was done in grayscale because the math was easier.
|This was a source image that the program tried to match||This was the output of the program. The original image was 3072 by 2048 pixels. Download it here, it's 1.5 MB!|
|Getting closer, you can see the image getting mosaicized.|
|This is a super close-up of the lips. You can finally see the grain of the cedar chip board.|
Stay tuned for more software updates,
Thanks, Paul, 3/21/00