Arduino controlled laser cutter

Okay, I have a new project in mind for the weekend (or the month, depending on how long it takes me): I'd like to build a laser cutter. I think I have my design for moving the material pretty much hammered out, but I still have a few things I need to hammer out before I get started.

1) So many lasers...I haven't done anything with a laser since laser pointers got old, and I can't seem to find a decent reference. I'll be cutting mostly wood, foamcore, plastic, cardboard, and card stock. There are a lot of options out there.

2) Controllers. I can build a 2-axis (X and Y) system right now using my Adafruit shield, but I'm just not sure as to whether it will be precise enough.

3) I'm thinking about trying to use PWM to control the laser beam intensity, for different depth cuts. Good idea? Bad idea? Got a better one?

4) Interface - I can build it, and I can probably program the controller (or at least give it some trial an error), but I have no idea how to program the computer interface side. I had projects that were supposed to be run by a computer, but I scrapped that part of the project for a simpler solution that turned out to be less of a headache. Should I go with a Processing sketch, or is there an easier way?

I'm open to suggestions as to how to make this thing work. While I haven't had experience with stepper motors, I think this will turn out to be an interesting little project for me.

A laser cutter is a lot like a CNC or 3D printer so look at the RepRap project or my CNC project

but I'm just not sure as to whether it will be precise enough.

That is a function of the software and your gearing between stepper and table movement.

I'm thinking about trying to use PWM to control the laser beam intensity

Yes that could work.

Have a lookey here:

I can not remember how I got to this site though.

Okay, I’ve been doing some research on lasers, and it would seem that since most of them are TTL, the best way to control the beam would be to build some sort of current control circuit. Alternatively, I could just drop the intensity controls, and manage the depth of the cut by changing how quickly and how many times the laser moves over a certain spot.

I’ve also been thinking about how a regular printer works, and think that method might work well for my cutter (an inkjet printer prints one line of pixels from the source file at a time). Since my prototype will essentially be a repurposed inkjet printer with a few modifications to work with different thicknesses of materials, it should either prove to be fairly easy, or really bloody hard.

I think the problem you might have is one of cooling. The laser cutter I have worked with will just about cut 6mm of wood, but the laser it's self is not moved, rather mirrors are moved to focus the beam. This makes the cooling easier using either forced air or water. The better the cut the more cooling you need because of the efficiency of the laser. You might only be able to mark material rather than cut it with the size of laser you mount on a moving head.