I have noticed that most use one of the existing slicers. I can understand this to an extent as there are a couple of good ones out there.

I have also noticed that most use existing firmware when making there own 3D printers. This one I do not understand.

On the firmware:
On the firmware it takes less than two days to write a complete set of firmware, working only in spare time. All that the firmware is, is a way to receive the G-Code, let the host system know of the sucessful receipt of the G-Code or any error in receipt, a way to process the G-Code, stepper control outputs, PWM outputs for controlling the current to the NiChrome element(s), delta sigma decoding the analog input from the thermistor(s), and watching the zeroing microswitch state.

This is all simple stuff, especially as simple as G-Code is to parse. So why do people use premade Firmware thus limiting the design of there 3D-Printer HW?

On the slicers:
I can understand using a premade slicer to begin with. Though the slicer is not going to know what your HW is best with, it is generic. I am still using a premade slicer, though that is only because I am still debugging my firmware.

It is not to difficult to write a slicer, and I am in the process of doing so. The slicer that I am working on in some of my spare time is a simple one that prefers X movement as the primary continuous, as that is what works best for my 3D Printer.

On 3D modelers:
I understand very well the use of only a few 3D modelers , it makes good since. Though as 3D printing is still in its infancy we are using StL models as the primary format. And we are using modeling software that is designed for other uses, often meaning that the polygon mesh is sorted in a way that is less than ideal for our usage.

So why are not more people writing 3D modelers that are better for the application of 3D printing? At very least to focus on sorting the polygons so that the bottom level is first, and continues vertically?

Do to the application of 3D printing there is no reason that a simpler modeler that is a lot faster could not be used. As such why use the slow traditional 3D modelers. We do not need bump mapping, or any of the extra rendering stuff. Just a simple modeler with simple flat poly rendering and we are good. We only need at maximum a resolution of 100 polys per cm each direction, and in most cases way less than that. Think about the models you have created, and the limits of your 3D printer.

I have written the design for a new 3D modeler that focuses on the application of 3D printing. I will work on writing the 3D modeler once I have finished the rest of the 3D printer.