Faits: A. X._ SA a notamment pour but social l'exploitation de boulangeries, pâtisseries, bars à café et restaurants. A._ SA, entreprise spécialisée dans les installations de chauffage et de climatisation, a exécuté au mois d'août 2005 des travaux d'installation dans une boulangerie que X._ SA exploite à Crissier. Elle a établi une facture au montant de 75'320 fr. le 12 décembre 2005. La maîtresse de l'ouvrage a versé un acompte de 30'000 fr. le 7 juillet 2009. B. En septembre 2005, X._ SA avait par ailleurs entrepris le réaménagement complet des locaux d'une boulangerie à Bussigny, en vue d'y exploiter aussi un salon de thé. Parmi d'autres travaux, ce projet comportait l'installation d'un système de chauffage et de ventilation. C._ Sàrl se consacre à l'étude, l'organisation, la planification et la réalisation d'opérations immobilières. Elle avait participé à la transformation de la boulangerie de Crissier. Par contrat du 21 septembre 2005, elle a promis à X._ SA diverses prestations relatives à l'installation de chauffage et de ventilation nécessaire à Bussigny, spécifiées comme suit: étude et adaptation de l'avant-projet existant, définition des besoins et concept technique, devis, soumissions, comparatifs et adjudications, plan définitifs et contrôle d'exécution, planification et suivi de la mise en ?uvre, gestion financière et contrôle des coûts, dossier de l'ouvrage terminé. A._ SA a présenté une offre pour l'installation de Bussigny. Elle proposait un bloc de ventilation avec chauffage électrique à installer sur la toiture du bâtiment, un réseau de conduites, gaines et diffuseurs à installer dans les faux-plafonds, des amortisseurs de bruit, divers accessoires et périphériques et un tableau électrique. L'installation récupérerait la chaleur du four de la boulangerie. La puissance du chauffage en toiture pourrait atteindre vingt-cinq kilowatts environ. Les prestations offertes comprenaient l'établissement des plans de montage en coordination avec les autres corps de métier, l'établissement du schéma électrique, le montage du matériel, l'isolation et le doublage des gaines en toiture, la programmation du régulateur et la mise en service de l'installation. D'abord plus élevé, le prix demandé fut réduit à 70'000 fr. hors taxes. Au nom de X._ SA, C._ Sàrl a accepté cette offre pour ce prix le 27 septembre 2005. C. A._ SA a exécuté les travaux au cours des mois de septembre 2005 à février 2006. Il apparut que les éléments de l'installation en toiture n'avaient pas été prévus dans le dossier d'autorisation de construire préparé par une autre des entreprises impliquées dans la transformation des locaux. L'autorité communale compétente exigea la dissimulation de ces éléments par des panneaux ignifuges. Il apparut également que la législation cantonale sur l'énergie n'autorisait pas un chauffage électrique de la puissance prévue, de sorte que l'installation dut être bridée à huit kilowatts. La boulangerie avec salon de thé fut exploitée dès le 23 décembre 2005. Il apparut que le salon de thé était insuffisamment chauffé, les clients y gardant leurs manteaux. A._ SA apporta des radiateurs électriques à bain d'huile. Par lettre du 22 mars 2006, X._ SA lui confirma que l'installation ne donnait pas satisfaction. Le lendemain 23 mars, pour cette installation, A._ SA présenta une facture au montant total de 75'320 fr., TVA comprise, payable à trente jours. X._ SA avait déjà versé deux acomptes de 18'800 fr. et 34'400 francs. D. Le 5 juillet 2006, requérant une expertise hors procès, X._ SA et le propriétaire de l'immeuble de Bussigny ont fait citer C._ Sàrl par le Juge de paix du district de Morges. L'architecte Pierre-André Juvet, désigné en qualité d'expert, a déposé un rapport puis un rapport complémentaire. Les dépens de l'expertise hors procès furent arrêtés à 18'037 fr.80 pour X._ SA et à 9'057 fr. pour C._ Sàrl. X._ SA a fait installer dans le salon de thé, par une entreprise tierce, des radiateurs raccordés au chauffage d'un bâtiment voisin. La dépense s'est élevée à 23'000 francs. Dès 2006, X._ SA a cessé de faire fonctionner le four de la boulangerie. E. Le 24 septembre 2007, A._ SA a ouvert action contre X._ SA devant le Tribunal civil de l'arrondissement de Lausanne. L'action portait sur le prix encore impayé des travaux de Crissier et de Bussigny. La défenderesse devait être condamnée à payer 97'440 fr. avec intérêts au taux de 5% par an, dès le 12 janvier 2006 sur 75'320 fr. et dès le 23 juillet 2006 sur le solde. Le tribunal devait donner mainlevée définitive des oppositions de la défenderesse à deux commandements de payer qui lui avaient été notifiés. La défenderesse a conclu au rejet de l'action et elle a appelé en cause C._ Sàrl. A titre principal, celle-ci devait être condamnée à payer 114'037 fr. à titre de dommages-intérêts, avec intérêts au taux de 5% par an dès le 14 mai 2008. A titre subsidiaire, l'appelée en cause devait être condamnée à relever la défenderesse de tout montant en capital, intérêts et dépens que cette dernière serait tenue de payer à la demanderesse. C._ Sàrl a conclu au rejet des conclusions prises contre elle. Par demande reconventionnelle, elle a réclamé que la défenderesse fût condamnée à lui payer le prix encore impayé de ses services, soit 12'028 fr. avec intérêts dès le 1er février 2006. Un constat d'urgence et une mission d'expertise furent attribués à l'architecte Roland Mosimann. Celui-ci déposa un rapport et un rapport complémentaire. En cours d'instance, la demanderesse a adopté la raison sociale B._ SA. Le tribunal s'est prononcé par jugement du 8 mars 2011. Il a partiellement accueilli l'action principale intentée par B._ SA. Pour les travaux de Crissier, X._ SA était condamnée à payer la totalité du prix encore dû, soit 75'320 fr. avec intérêts au taux de 5% par an dès le 12 janvier 2006, sous déduction de 30'000 fr. avec intérêts dès le 8 juillet 2009. Pour les travaux de Bussigny, une moins-value arrêtée à 11'500 fr. était imputée sur le solde encore dû; X._ SA devait donc payer 22'120 fr. avec intérêts dès le 23 avril 2006, sous déduction de 11'500 fr. avec intérêts dès le 1er mars 2006. A concurrence de ces prétentions, le tribunal a donné mainlevée définitive de l'opposition dans chacune des deux poursuites. Le tribunal a rejeté l'action connexe et récursoire intentée par X._ SA à C._ Sàrl et il a accueilli l'action reconventionnelle en paiement d'honoraires; il a ainsi condamné X._ SA à payer 12'028 fr. avec intérêts au taux de 5% par an dès le 10 septembre 2008. F. X._ SA a appelé du jugement. Elle persistait dans ses conclusions tendant au rejet de l'action principale de B._ SA. C._ Sàrl devait être condamnée à lui payer 44'537 fr. avec intérêts dès le 14 mai 2008; elle devait de plus être condamnée à la relever de tout montant alloué, le cas échéant, à B._ SA, en capital, intérêts et dépens. La Cour d'appel civile du Tribunal cantonal a statué le 27 mars 2012. Elle a réformé le jugement au détriment de B._ SA en ce sens que la moins-value grevant sa prétention est augmentée de 11'500 fr. à 17'300 francs. Le jugement est confirmé pour le surplus. G. Agissant par la voie du recours en matière civile, X._ SA saisit le Tribunal fédéral de conclusions semblables à celles prises devant la Cour d'appel. Invitées à répondre, B._ SA et C._ Sàrl concluent l'une et l'autre au rejet du recours. 