I recently completed a project working on 3d protein alignment for a bioinformatics company in New Zealand. I created an Objective C program and a couple of Java plugins for their Geneious product which perform 3d alignment using the McLachlan method of conjugate axes, and 1d pre-alignment using a variant of the DALI distance matrix method (see references below for more information about these methods). The objective C program allows for both a manual (with GUI) or an automatic 3d alignment, while the Java programs provide automatic alignment (the 1d pre-alignment using an evolving population of simultaneous alignments to achieve the optimum match). Note that performing a 3d alignment is very different than performing a 1d alignment. Although a preliminary 1d alignment to find corresponding amino acid pairs is required, standard 1d alignment algorithms (e.g. BLAST or Needleman-Wunsch, etc...) fail to do this, and an algorithm that makes use of the 3d coordinates of alpha-carbon atoms is required.
Holm, L., and Sander. Protein structure comparison by alignment of distance matrices. J Mol Biol. 1993 Sep 5;233(1):123-38.