It requires a lot of RAM though (on the order of 16 GB for most scenes).
You use a consumer camera + a calibration chart to get the specifics about the lens setup on the camera, and then just take a whole heap of photos around the object in question. You add the photos to the program and it asks you to identify common points. This puts them all in 3d perspective and you set a dimension on a known length to scale it.
For mapping large-scale machinery (train stuff) I've managed to get a ~5mm accuracy out of it. That's great when you don't have drawings.
https://www.microsoft.com/en-us/kinectforwindows/
You can get a Kinect V1 on ebay for less than $30, but you need a graphics card that fully supports DirectX 11 and a somewhat powerful machine to scan objects. Unfortunately, you can't scan small objects because the Kinect goes blind a less than a meter, but I have been able to scan people and print out recognizable busts of them. I don't know if the Kinect V2 is any better.
Cubify has a portable handheld 3D scanner that looks like it might work well, but I can't afford the $400 to try it out: