Building 3D Web Applications with Babylon.js and Angular: Lessons from a Golf AR Project

Building 3D Web Applications with Babylon.js and Angular: Lessons from a Golf AR Project

Raise your hand if you knew you could use JavaScript to create full-fledged 3D apps, complete with AR and VR support, right in the browser?
Most beginners are surprised to learn how far the web has come in terms of 3D graphics and real-world game development.
In this article, you’ll learn:
What tools and frameworks are needed to enter the world of Web-3D and AR applications;
How to connect an Angular interface to a 3D scene to make the app feel unified;
What challenges developers face when creating a true 3D application;
What optimizations can dramatically increase performance?
Our test project is Golf AR. It’s a small game where the user’s goal is simple: hit the ball into the hole. But for us, it wasn’t so much about the game itself as it was about exploring the real-world challenges a developer faces when creating an interactive 3D app in the browser: working with physics, camera control, lighting, event synchronization, and UI integration.
We won’t go into detail about how to build a 3D app in the browser from scratch — there are already dozens of good articles and courses on this topic. Here, we’ll share our practical development experience, discuss real-world challenges, and explore solutions using our project as an example.
Since the project covers several distinct areas, we’ve decided to split the material into two parts. In this first article, we’ll focus exclusively on the 3D portion of the project: architecture, performance, physics, and the integration of the 3D scene with the UI. In the second, we’ll detail some of the limitations associated with AR and the practical solutions we found during development.

Extending Django Import Export: our experience developing an Open Source package

Extending Django Import Export: our experience developing an Open Source package

In many software projects, sooner or later, there arises a need to reuse code. Sometimes such code can be extracted into a standalone package that can be maintained independently and easily plugged into other applications. If the package solves a common problem and could be useful to others, it may be worth open-sourcing it. This gives other developers the opportunity to adopt and use your library.

However, preparing open-source code—setting up the repository, CI, and workflows—may often  differ from a company’s internal standards. One of our implemented open source projects was an extension for the popular Django package django-import-export. Using it as an example, we’ll walk through all the steps needed to publish your own library.

Our Recipe for Developing Good Automated Tests

Our Recipe for Developing Good Automated Tests

Testing a new version of an application prior to release is non-negotiable. With every release, there is the possibility of introducing bugs. New features must be tested, but existing functionality (regression testing) should be tested as well to be sure that issues were not introduced when new features were added. With each new release, new test cases (unit/functional) are added to your test suite. The bigger the test suite, the more time-consuming regression testing becomes. Eventually, your QA team becomes swamped with hundreds of manual tests. This delays releases and slows down product development

What does “a lot of data” in a database mean?

What does “a lot of data” in a database mean?

How much data is considered “a lot”? Is it 100,000 records, 1 million, or even 100 million? Does it depend on whether it’s a gigabyte or a hundred gigabytes? When and why does the performance of a database start to “sag”? It is simply impossible to give a clear answer to these questions.