Apartama - service for interior design and not only

Published on October 27, 2010

Apartama - service for interior design and not only

    Hello!
    For more than a year we kept our project secret - without holidays and without days off we worked on the Apartama - “a service for interior design and not only”, and now, finally, we can tell the users about it.

    Apartama

    Inside the story of the project in part one and the technical details in part two



    Meet Apartama!


    The idea of ​​the project was born by our team while working on a program for demonstrating upholstered furniture of one of the Russian manufacturers. Then we thought how great it would be to make the same program, but available immediately on the network, and uniting many furniture manufacturers. Fortunately, our idea received understanding and support, and we received resources for the implementation of the project.

    The apartment can be of interest to anyone who is faced with the need to repair, remodel, rearrange furniture or creates the interior design of their apartment. All these people got the opportunity to experiment with interior items and decoration materials and visualize their ideas. At the moment, our base is filled with a set of 500 interior items and about 700 finishing materials created by us for the launch of the project. Our company began concluding contracts for the placement of products of real manufacturers in our editor. On the other hand, the service presents a new format of advertising for companies involved in the manufacture and sale of furniture, for them the Apartma makes it possible to transfer products from advertising stands directly to the apartment of a potential buyer. Without leaving home,

    Competitors


    We are certainly entering a market where software for furniture companies is already presented, to one degree or another satisfying their needs. Our colleagues in the workshop can be divided into three conditional groups:

    Offline programs for the design of cabinet furniture. (Basis furniture maker, DS3D, PRO100, bCAD, Outline3d (online)). Depending on their functionality, they allow you to: assemble various furniture sets from standard modules, calculate module sizes, determine the amount of materials required for their manufacture, receive specifications, etc. Thus, they provide a lot of opportunities for the manufacturer (especially cabinet furniture manufacturers) but at the same time they represent the interests of only one furniture brand, are difficult to use and are available to customers only through the seller.

    Planners (foreign: Floorplanner, Planningwiz, Autodesk dragonfly; Russian Roomix (service not available), liveplan.ru). These applications are very easy to use, available online, allow you to draw the layout of any room and fill it with furniture (abstract most often). But at the same time they are inferior in quality of visualization (costs of flash-technology) and have limited possibilities for arranging furniture.

    Programs for trying fabrics on upholstered furniture (for example, Elarbis). These programs provide high quality visualization, allow you to change the materials of a piece of furniture, but they are very narrowly sharpened exclusively for the demonstration of upholstered furniture, i.e. Again, they represent the interests of only one brand and do not have an online version.

    Working on the Apartment, we have relied on high-quality visualization, an easy interface with wide capabilities and the availability of on-line service. We believe that realistic visualization is important both for users for making various interior and repair decisions, and for sellers for presenting their products. That is why our editor is based on Unity 3D technology, which allows you to demonstrate three-dimensional objects directly in the browser, while having access to all modern graphic technologies. In the editor, you can change the materials of walls and floors, and, moreover, select finishing materials for each piece of furniture and decor. You can take a virtual walk through all the created interiors. We tried to make the interface as simple as possible so that any user, without special training, I could immediately begin to realize my ideas. We continue to improve the interface based on the wishes of our customers (manufacturers, sellers) and ordinary users.

    Thus, Apartama, on the one hand, solves the same problems as professional programs, on the other, it is accessible and simple for users, and, on the third, it takes into account the needs of individual segments of manufacturers: upholstered furniture, modular furniture, decoration materials, etc.

    Editor


    What our editor is able to do.
    Create a 3D model of the apartment - floor and walls, windows and doors. At the same time, we created more than 600 standard layouts painfully redrawing drawings from the BTI, and in most cases it is enough to choose your apartment on the site.
    However, there is always the opportunity to create a layout yourself, if it is not in the database: Choose finishing materials for walls and floors. Several layouts for materials are available for the walls (if you want a border on the wall - please) and we plan to add even more. Place furniture from more than five hundred items from real manufacturers in the apartment and choose the most suitable materials (for example, one and the same chair can be covered with fabric or leather, and for the armrests and legs you can choose the type of wood).








    Take a virtual walk through the new apartment. Get a specification for your interior. Show off to your friends using the flash widget with a panorama of the apartment.









    additional services



    Market. Another equally important part of our project is the Market. It will allow you to immediately order in online stores or simply find out the price of the selected materials, furniture and decor items, as well as get an estimate of the entire design project.

    We thought that it would be great to put together all those goods that may be required for repair, and as a result we gathered two dozen online stores and more than twelve thousand items under one roof. And we plan to constantly replenish this section of the

    Interiors. And for those who do not have enough ideas or who want to see what beauty other users and eminent designers have brought, we made the “Interiors” section with a bunch of pictures. Here you can upload your gallery and boast a new apartment design.

    DIY repair.For technical issues, we made the “Articles” section, which is gradually being filled up and over time will turn into a repair encyclopedia.

    Blogs Well, and to solve any remaining issues there are "Blogs", professionals in various fields - designers, specialists in Feng Shui, redevelopment, hand-made, etc. will be involved in communication in this section.

    People are changing - this is a real estate exchange service without intermediaries. The service has already been launched, but we will talk about it in a separate article.

    Monetization


    Our 3D editor exists in three versions:
    • Off-line version - it is installed in stores and shopping centers directly for the sales manager to work with the buyer (at the same time, competitors' products are excluded from the editor’s catalogs, but other products are saved, which are necessary in order to create a full-fledged design project). According to furniture companies with whom we have already negotiated, such programs significantly affect sales and increase the cost of an average check.
    • Online version - posted on the website of the manufacturer or seller of furniture and decoration materials (in this case, competitors' products are excluded from the catalogs of the editor, but other products are saved, which are necessary in order to create a full-fledged design project). This option will be very useful for those people who have already visited the store, but could not finally decide on a purchase, the editor will help them weigh the pros and cons of the house in front of the computer.
    • Full version or online hypermarket of furniture and decoration materials - in this version we plan to collect the entire range of quality furniture and decoration materials available in Russia. In addition to the apartama.ru project site, this version is also posted on other sites with high traffic (sites dedicated to interior design, renovation, sites with a female focus, etc.).


    Hypermarket monetization options:
    • Banner advertising in the editor
      As the experience of apartama.ru shows, the CTR of banners located inside the editor increases significantly compared to banners on the pages of the site.
    • Follow the links on the pages of the furniture description
      In the description of each piece of furniture there is a link through which the user who is interested in the item can go to the website of the manufacturer or online store.
    • Competitions and special projects
      The experience of active negotiations with manufacturers and sellers of furniture and finishing materials shows their particular interest in conducting various competitions on interior design based on the 3D editor of Apartam.
      In addition to contests, the technologies on the basis of which the “Apartam” 3D-editor is developed also make it easy and quick to implement individual special projects at the request of specific advertisers.
    • Creation at the request of the user of a design project by professional designers
    • Discount coupons
      One of the standard monetization schemes is that a person selects something in the editor, prints a discount coupon and goes to the store where he is given a special “three-dimensional” discount, and the Apartment receives a certain percentage from each customer brought. There are a number of difficulties in how to control the fact that a purchase has been made for this coupon. There is a slight difficulty in that it will be much more profitable for a sales manager to provide his discount and pick up a client for himself.
    • Payment for ordering a call
      Having decided on the choice, the user of the 3D editor, using a special form, fills out an application for a call from the manager of a furniture or finishing company.


    Technology


    Many users will be interested to know what is inside the apartment, and we, in turn, will be pleased to tell you about it.

    Django


    We love junga, because it makes our life much easier and allows us to concentrate on important matters and to clutch our heads less.
    The apartment is divided into several applications for each of the sections - market, blogs, exchange, etc. and connects two dozen third-party applications, in which we try to smuggle back whenever possible.
    Django helps us a lot in terms of administration, I think that many people know that a good and almost automatic admin panel in django. We are actively using it for a huge number of applied tasks - admin panels for partners. reporting services, collecting editor usage statistics, etc.
    To make the administrative interface more pleasant and convenient, we use django-grapelli and grapelli-admin-tools - with it, the interface transforms very strongly for the better.



    LANMMP stack


    We are conservative in this matter, Django is launched by means of WSGI inside Apache. The data is stored in MySQL, which has developed historically, and now we would choose PostgreSQL which we love much more, but so far we do not have sufficient arguments and resources for migration. The data is cached in memcached, we only use caching inside the templates, caching parts of the templates that take a long time to generate. Some data is cached in denormalized fields, whose validity is supported by save signals, but there are few of them. And all this runs on CentOS, but we honestly can’t stand it.
    Statics are given through NGINX, bypassing apache, as well NGINX works as a frontend for Apache for all dynamic pages.
    With statics in our case, everything is not as simple as we would like. Alas, it is impossible to get rid of Ngini alone. In addition to returning a standard set of statics - javascript, pictures and styles, we give data to the editor, these are two types of resources - textures for decoration materials and models. Textures on average have a size of 100-200 kilobytes, models - 2-3 megabytes. Taking into account the preview images, about two thousand objects can be loaded into the editor.
    Therefore, we especially single out two situations for obtaining statics - the initial loading of a large number of small pictures and loading models. Of course, I want to distribute statics very quickly, so that heavy models load as quickly as possible - no more than in a few seconds, which means that for the return of each model we need to have a channel of several megabits per user. For some time we managed on our own, since Nginx did not fail and gave static at a more than acceptable speed. But it became completely clear to us. that on our own we can’t fight off the same habraeffect.

    Amazon s3


    At first, we were somewhat wary of using S3. I had to double-check several times whether we correctly calculate the cost - it turned out too cheaply. It turned out, indeed, Amazon offers excellent conditions for storing data in our situation. We transferred model files, all materials, the editor itself and data files to S3. Here's how much we pay, as a result of this to Amazon: We continue to keep screenshots of interiors, as well as other statics, at the same time, without complicating the file upload system. Now it’s enough for us to run a slightly modified script from the django-command-extensions bundle and all the files will automatically be synchronized with S3.




    The main concern was the fact that Amazon’s stores are located in Europe. But after several tests it became clear that the data is transmitted on average even faster than from a server in Moscow. Amazon, of course, has its own specifics, so the models begin to download in the first one or two seconds at not the highest speed, which then increases sharply.

    Unity3d


    One of the central technologies of our entire project. If it weren’t for unity, it’s not a fact that Apartama would be born. Unity has tremendous opportunities, and, in general, it is a very thoughtful and powerful platform.
    Thanks to unity, we can demonstrate full 3D scenes in the browser - with shadows, complex lighting models, shadow maps and special effects, such as SSAO.
    The big plus of Unity is that we simultaneously support both online build for web sites and a full offline version in the form of a win application for our partners with minimal costs.
    We are looking with great interest at the third version of the unit, and will gladly transfer the apartment to it as soon as we have time to edit all the things that have changed.
    Unity, of course, is not perfect either. First of all, the situation with bug fixes is very sad - intermediate releases are very rare, there is no question of getting any bug fixes. What can I say, a critical security error has not been fixed for more than six months after the first report.
    Secondly, the politics of unity is at times perplexing - you think that buying a pro version for one and a half thousand dollars will give you all the functionality - but no. For example, local caching and access to a webcam can be obtained only by giving a percentage of unit sales and proving that you are a large company. This is understand, of course. it’s possible, but it’s upsetting that on the forums the administration continues to assure that the same local cache is not available not for financial reasons, but because the unity team does not want end users to clutter up their hard drives.

    Deployment and various optimizations


    While the apartment lives on the same server, and the procedure for delivering a new version of the site is not too complicated. We use a bash script that pulls from the git repository on unfunddle.com, applies south migrations, copies the new version of the editor to the statics, updates the XML for the editor, synchronizes the S3 repository for all files via the manage.py command, and restarts apache as the last step.
    We try to follow (albeit without fanaticism) optimization guidelines from google and yahoo, as most of the graphics on the pages are collected in sprites (thanks to our wonderful layout designer for this), far statire dates are set for all statics, and it, in turn, is compressed through django-compress.

    Sincerely, team apartama.ru