LEDAS Blog

One hierarchy, many algorithms

Geometrical modeling projects often contain some form of central hierarchy of objects. A geometric kernel, for example, has a hierarchy of geometric entities. Another example is a geometric solver which has a hierarchy of objects and constraints. Simplified inheritance diagrams for these hierarchies are shown in the figures below.

Many routines/algorithms of other modules need to process all the entities in a hierarchy in a similar fashion, although with different implementation details. So, polymorphism naturally is used with these kinds of hierarchies.

Assuming we are talking about C++ (and this is usually the programming language of choice for algorithmic libraries in CAD), using virtual functions is the first consideration for implementing polymorphic behaviour.

However, a variety of routines applied to the entire hierarchy, ...

Read more

LEDAS Life Contest

Aug 31, 2020 Ilya Lichman

Let’s go all the way back to 1970 and to the Game of Life. Also known simply as Life, this program is based on cellular automaton and was devised by British mathematician John Horton Conway.

The rules of Life

The rules of Life are simple: The universe in which Life is played is an infinite, two-dimensional grid of square cells. Each cell has one of two possible states, on or off, filled or empty, live or dead.

Each cell interacts only with its eight neighbours. Neighbour cells are adjacent horizontally, vertically, and diagonally.

Cells stay alive when they have two or three neighbours. Live cells with fewer than two, or more than three, live neighbours die, as if by underpopulation or overpopulation. Dead cells with exactly three live ...

Read more

What Statistics Can Tell Us About SARS-CoV-2 Test Results

Antibody testing at LEDAS shows good results. What does it mean?

Jul 20, 2020 Nikolay Snytnikov

To better estimate the situation with СOVID-19 within our company LEDAS, we decided to make antibody testing available to our employees who work remotely since March. Fifty-three of our 70+ employees were interested, and so we organized out-of-lab testing thanks to Invitro’s laboratory service. Both IgM (early antibodies) and IgG (late antibodies) were examined, and the results were simple: all had zero positives for IgM, and one employee was positive for IgG.

We were able to congratulate ourselves for the zero result in early antibodies, meaning we are quite safe. But now we needed to focus on the late antibodies, as they provide more interesting information. Since we at LEDAS are now involved in more medical software projects, we considered this an opportunity to apply statistics to our ...

Read more

This post was written by a LEDAS developer in his own blog, and now we repost it here. Focus on performance is the major goal in our projects, and we are going to publish more posts on this topic.

It is well-known that Debug build in Visual C++ is very slow compared to Release build, with the typical ratio about 10-20 times. Various reasons behind it are often stated, and some people even believe that it is inevitable because it is caused by lack of compiler optimizations.

If some issue happens only on a large dataset or in a real-time application, and it cannot be extracted into a smaller test case, then developer is forced to debug Release build. Which is rather painful ...

Read more

LEDAS customer map

May 24, 2020 Alexey Ershov

The geography of the locations of our customers has changed considerably during the 20+ years of LEDAS’ history.

From looking at the map of our customers (below), you may think that we began in our home country and then expanded abroad. In fact, the reverse is true, because in its first years LEDAS mostly provided CAD and CAM software development services in Europe, namely to Dassault Systèmes from France.

In the beginning, we concentrated on developing geometric solvers and engines, a rather narrow field, yet very sensitive to quality. Over the following years, overall CAD software market was our primary focus.

In late 2000s, LEDAS Geometric Solver (LGS) was our flagship product, along with our high-quality R&D (research and development) services for CAD and PLM. Many ...

Read more

How to Hack C++ with Templates and Friends

May 07, 2020 Andrey Karpovskii

Templates are a very powerful feature in C++, because they allow you to write generic programs that accept a data type as an extra parameter. This feature of them means that we don’t need to repeat similar code for different data types.

When templates were first introduced in C++, their capabilities were unforeseen. Since then templates have grown into a separate functional language inside of C++. This language has its own syntax, rules, and huge number of specifics, one of which I will discuss later.

How Templates Work

Each template defines a family of functions. It is, after all, a functional language. But the family does not produce any code on its own. Instead, the compiler generates code only for functions that are actually used in the program. This process ...

Read more

In these work-from-home times, we are seeing a burst of interest in LEDAS Cloud Platform (LCP) as nearly every day our team shows demos to prospective customers.

LCP is a platform on which applications are developed for online 3D modeling, and so I think that the primary reason for the record levels of interest is that companies are beginning to realize that the world and the way in which we organize it might not be the same after the pandemic ends. Businesses are asking their engineers to work from home, and this may well become the way of the future.

With remote work now a must, and because it is likely that full-scale and partial lockdowns will last for many more months, Web and cloud solutions are ...

Read more

On C++ code bloat

Apr 08, 2020
Foreword by Alexey Ershov:
After publishing my post about C++'s new standard, in which slow compilation time is highlighted as the most bothersome C++ feature, one of our developers responded with a link to his post from 2018. This post is more technically involved with the problems that code bloat have on slow compilation times. It focuses primarily on the negative effect of extensive templates, headers, and inlines on compile times, but then also provides the programming practices to overcome these problems. Read it here now.


The C++ language is known for its slow build times. This problem is not present in the world of pure C, which might give a hint that the problem is caused by some ...

Read more

This is a proper moment to read about our history. Let me put some points here.

  • 2019 LEDAS celebrates its 20th anniversary by moving to a new own 1,000-square-meter headquarters office at Academpark.
  • 2017 LEDAS releases its LEDAS Cloud Platform (LCP) as an easy way to build Web-based CAD solutions.
  • 2016 LEDAS signs a long-term cooperation agreement with a major US-based digital dentistry company.
  • 2015 LEDAS lands its biggest service contract to date for developing a full-scale Web solution in the area of building information modeling (BIM)
  • 2011 LEDAS sells some of its intellectual property and staff to Bricsys NV, including its LGS 2D/3D geometric solver. After the sale of IP rights concludes, LEDAS renews its top management and pivots the company to focus on high-end R&D ...

    Read more

How LEDAS Teaches Via Distance Learning

LEDAS’ Collaboration Knowledge Proves Useful at Novosibirsk State University

Mar 31, 2020 Ivan Rykov

As of today, March 31, there are only 9 confirmed cases of coronavirus in the city and region of Novosibirsk, near where the office of LEDAS is located. As the disease began spreading in other parts of Russia (initially in Moscow), Novosibirsk State University two weeks ago shifted to distance learning. Teachers received suggestions as how to organize remote lessons for students using a variety of opportunities:

  • Hold remote conferences via the Internet using such platforms as Google Meet, Zoom, and Skype
  • Record video lectures and seminars from empty classrooms at the university
  • Record videos from home using cameras on smartphones
  • Send materials and homework tasks by email and get the results

LEDAS is proud of its strong connection to Novosibirsk State University and other ...

Read more

A dozen LEDAS programmers took part in a C++ event a month ago in our city of Novosibirsk, which was happily organized before the spread of any COVID-19. C++ has become a very complex programming language with a long history stretching back to 1983, and so it was tricky for event organizers to arrange talks that appealed to every kind of developer. Perhaps the easiest thing to talk about was new standards, and this year this was possible as the new C++ 20 standard is on its way.

Following the event, we wanted to know what our LEDAS programmers thought about C++ 20, and now we have their answers available to share with you.

C++ 20 highlights four major new features: concepts, ranges, coroutines, and modules. Here is how our ...

Read more

These days humanity faces one of the biggest threats and challenges in decades with the pandemic of a deadly virus, which has already become a personal tragedy for thousands all over the world.

LEDAS is, so far, fortunate in experiencing no cases of COVID-19 in our neighbourhood. We decided nevertheless to improve our capabilities for working remotely. By working remotely, we contribute to social distancing, which is essential to “flattening the curve,” the primary goal now identified by health experts in reducing the load on our hospitals.

Working remotely is also important to keeping the economy working, as a complete shutdown would cause great losses in output and revenues, and, as a result, possibly in more lives lost.

An efficient infrastructure for remote work implies high-speed Internet connections, as well ...

Read more

LEDAS Has Developed Five (!) Constraint Solvers

What's It All About?

Mar 13, 2020 Alexey Ershov
One of the important components of CAD is the geometric constraint solver. Since the early 1990s, the field was monopolized by a British company, D-Cubed, now a division of Siemens Digital Industries Software (formerly Siemens PLM Software). In 2001, LEDAS began to develop geometric constraint solvers for 2D and 3D geometry, called LGS 2D and LGS 3D. They were successfully brought to the global market, and licensed by dozens of CAD companies in USA, Europe, Japan, Korea, China, and Russia.

While working on LGS, the programmers at LEDAS developed similar software for Dassault Systèmes, which were integrated into CATIA and so are used by hundreds of thousands engineers in corporations like Toyota, Honda, Airbus, and Boeing. Much later, LEDAS was asked to develop constraint solvers that ...

Read more

Companies invite LEDAS to outsource their hard engineering software projects because in our team they find an effective balance between in-house and extendable competencies, the ability to deal with innovations, reliability and quality of the resulting solutions, high level of communication, and reasonable pricing. These advantages have been formed at LEDAS over its 20-year history of implementing knowledge-intensive industrial software development projects.

Near the end of the 1990s, a team of mathematicians and computer scientists from Novosibirsk Academic Lab were involved in small research projects for Dassault Systèmes. A manager at Dassault recommended that we establish ourselves as a private company, as operating as a business would be better suited to developing industrial-scale projects. And so LEDAS, Ltd. was founded on April 1,1999.

The subsequent history of ...

Read more


Show: 10 20 50 All