If you are in a team where you are the only person in charge of the software, right from the design->implementation->final shipping of the product, you need to have complete & utter faith on the people who came up with the idea in the first place. And also use a bit of common sense from your side and ask yourself why you think this product will work in the market?. You are going to spend countless hours away from family, slogging on developing a state-of-the-art product which's going to be discarded in a couple of months/years time. Not a good way of investing precious time, which might have well been spent in academia.

I empathize with your situation.Long ago, I too, was stuck in a similar environment. The concept maker was undoubtedly brilliant but when it came to the software specs, he was at a complete loss. I was the only one in charge of development work. But gradually the product design changed and I kept on modifying my project every other day- changed the tools, changed the OS, shifted through multiple languages and finally setup my environment which worked well. By that time, I was half nuts. I struggled to get my work completed in time due to many technical issues, frequent changes in the original concept, and primarily because of lack of practicality of the project. I lost faith , I realized it was just going to be a test project and will be discarded in a couple of months time when they start working on the next long-term project. For them this was a low-priority project, but for me, it was everything and the only thing that mattered at that time. So I thought what the heck, I stayed put and tried to get as much work done as possible, worked like a dog, but my end product was not as impressive as they had imagined it to be. I didn't want to leave them, I loved my entire team and they are nice people. So, I continued being nice & tried to help them as much as I could. You know what, at the end, the entire project was scraped and forgotten as I expected and now they are focusing on a much bigger, profitable & 'practical' project. Guess who was blamed in the end and who got away?

If you want to help someone, they will never refuse. Being nice is easy, trust me. You want to be the nicest guy in the startup world, be the superhero in charge of saving your company from an predictable doom and maintain true friendship, I understand. But choose to continue what you are doing only if, you feel you cannot be more useful anywhere else in the world. God forbid, but suppose things go seriously wrong in your company tomorrow, the business people might put the blame on you, since you are the sole implementer.You mentioned that all of you are close friends..., but if they were in your shoes instead, what would they have done by now?

The toughest part is saying 'No'. It's painful for you, especially if your friends are on the receiving end of your rejection, but you need to do the right thing and save everyone's time including yours. Move on and help your friends move on too. Find another project or start a different company with your friends. Or if you have an alternate idea in mind, discuss the concept with them, don't just be a code monkey.