The road to the dream of cloud CAD
Dmitrii Kanin
R&D Engineer 17+ years experience (CAD/3D graphics/CV/Simulation/Web/Mobile/AR/SaaS/Hardware)
In this article, I will talk about my experience in developing web-based CAD. My story begins in 2006 and I understand that now you will not surprise anyone with web-based CAD. But then even AutoCad Autodesk did not have a cloud version, and looking ahead, we made a fairly revolutionary prototype of a web-based CAD.
The article contains the following sections:
So, let's begin.
Background
I got an honours degree as a Software Engineer in specialty “Computer-Aided Design in Mechanical Engineering” at the Voronezh State Technical University (Russia). My specialty teaches CAD/CAM/CAE/PLM development. In short I learned the disciplines in Information Technology, in Mathematics, in Engineering and also Computer graphics, Engineering graphics, Geometric modeling. I know machine-building production, I had an internship at factories. I took part in the development of an educational CAD based on the Open CASCADE? engine. I developed libraries for parametric design based on API for KOMPAS-3D, AutoCAD, Sketchup, Siemens NX.?
In 2006, I first learned about the VRML language, which can be used to create interactive 3D graphics in a web browser. The need to install the plugin was its serious drawback. I independently studied this technology and wrote a tutorial and methodological guides. As you know “if you really want to learn a topic, teach it to others”. And I started teaching VRML to students in the discipline of Multimedia Technology. They made various interactive 3D models as part of their term papers.
As time went on, I began to teach the discipline of Internet technology and develop websites in HTML, CSS and Javascript. Interested in web design, back-end and interactive graphics in the browser.
In 2011, I discovered the Сortona3D software for developing 3D interactive technical documentation. Then there were "unsanctioned" times and I managed to agree on several educational licenses for the department. I really liked to develop 3D interactive technical documentation because these projects combined my love for Internet technologies, 3D graphics and CAD.?
Start
At the time, only desktop CAD like AutoCAD, NX, KOMPAS-3D were on the market. I knew how to develop desktop CAD and you won’t surprise anyone with this. Therefore I had a dream to design products in 3D in a browser. I had such an idea a long time ago, but there were no technologies for its implementation. All these 8 years of my experience was a systematic development of skills and abilities in Internet technologies and 3D graphics.
In 2014, perhaps earlier, WebGL and the three.js library were gaining popularity for generating interactive 3D graphics in the web-browser. When I heard about them, I plunged into R&D in hopes of developing my own web-based CAD. I didn't want to make an imitation or a cheap parody of CAD like different online design platforms. To implement my idea, I needed a real geometry kernek. At that time, the open-source Open CASCADE engine and the Russian geometry kernel C3D, on which KOMPAS-3D was built, were available to me. I finally opted for the kernel by C3D Labs, because I had experience designing in KOMPAS-3D, they have good documentation and educational licenses. After negotiation with the head of the department and C3D, we got access to the core C3D and documentation. And here the puzzle of architecture has developed. On the server, we raised Nginx, launched the core C3D on the back-end, and on the front-end the graphics were rebuilt with three.js.
Further, two very talented students, as part of their course work, implemented a web viewer for 3D models in C3D (watch the Video 1), with the only function to open 3D model files in the browser.
Video 1. Prototype of web viewer for 3D models in C3D
When I saw this, I realized that no one had done this before us and that something more could come out of it. With the consent of the students, I sent the project to a competition organized by C3D. Everyone sent 3D models, but we only sent a software project and received a special prize. Further, as a complex thesis, students added the function of constructing the simplest primitives. And this was already a CAD prototype (watch the Video 2).
Video 2. Prototype of web-based CAD
领英推荐
Founding a startup
Even then, I was rapidly developing competencies in Innovative activity and attended various start-up competitions. At one of these competitions, I met a future business partner. I approached, introduced myself and told my idea. After some time, he wrote to me with a proposal to develop a browser-based CAD system for designing private houses. I liked this idea. And in 2014, we founded a small innovative enterprise at the university, and called our project HABITEK.?
I remember those times with enthusiasm and inspiration. We worked for an idea without a salary. When, after successfully defending the application, we received a grant from the Innovation Promotion Fund under the Start program, we were able to pay salaries to the developers. Later we received subsidies from the city administration as part of the program to support small innovative enterprises. We developed quite quickly and after correspondence acceleration we got into the full-time accelerator of the IIDF in Moscow. We were there for 3 months. It was September 2015.?
Cloud architecture
One day, specialists from Microsoft came to the accelerator to make a presentation of their startup support program and announced a project competition. The best 3 projects will be invited to the Microsoft office for an in-person acceleration program. I’ll say right away that we were included in this number and spent what seems like 2-3 days in the Microsoft office. I called a developer on a business trip to Moscow and we all set up and coded together almost around the clock. That's when I first became acquainted with containers. We also invited a mathematician from C3D there. She helped us resolve issues related to installing and deploying the kernel. As a result, together with Microsoft experts, we transferred the infrastructure to Azure. Everything worked. And in October 2015, we published an MVP release implemented on ASP.NET with a cloud infrastructure on Azure (see Image 1) and graphical engine C3D on server side. Microsoft sponsored our subscription to the Bizspark program for startups.
There were big plans for development and scaling, but unfortunately we couldn’t learn how to make money and soon the money from the grant ran out and the company went bankrupt.
Result
I am beyond modesty proud that our team managed to develop an MVP. It's a pity that things didn't go further. The system worked in a browser (watch the Video 3) and even on a smartphone (watch the Video 4).
Video 3. MVP web-based CAD in web-browser.
Video 4. MVP web-based CAD in iphone.
We implemented the movement of walls in real time (watch the Video 5). Our competitors still, after so much time, move walls using phantoms in 2D and without restrictions.
Video 5. Movement of walls in real time in 3D in the web-browser.
The profit center also implemented the function of selecting roof types (see Image 2) and the explication of rooms (see Image 3). And what’s most interesting is that I still haven’t come across any analogues that have implemented something similar.
In addition to development, we were engaged in science and research. Web CAD was only a tool, and the core of our service was the method for self-designing houses by customizing interactive adaptive prototypes. But I will talk about this in the following articles.
CEO – C3D Labs
1 年Great article and a very interesting experience!