Low Code Approach
Low Code Approach Simplifying 3D Customization with thob.studio
published on

The concept of low code / no code has long been hailed as a way to bring ideas to life without delving into the intricacies of programming. But what does that really mean? Essentially, it's about providing a platform where individuals can translate their concepts into reality without getting bogged down in technical jargon.

That sounds kind of like wielding a linguistic superpower that allows you to command computers without ever needing to learn complex programming languages.

Ideally what is programming? At its core, programming is about giving instructions to a machine in a language it understands to produce desired outputs, that's a super naïve and simple explanation.

Mastering a language can be daunting. An interface / abstraction in between would help ease the friction but if you think about it that's exactly what programming languages already do, with low code though we take it a step further i.e., abstraction on top of an abstraction, wrapper on top of a wrapper, dream inside of a dream ( just for adding an Inception reference ), etc

Personally, I came across the concept of low code in middle school when I first came across Scratch ( a game development application developed at MIT Media Lab ). At the time all I could write was HTML ( barely, all I could do was change the color of the background of the body that too using the attribute bgcolor ). However little me was able to build all the games he wanted to build at the time using Scratch quite intuitively.

There are quite a few different approaches to low code

1. Model-Driven Development (MDD): MDD involves creating models of software systems at a high level of abstraction. These models can then be automatically transformed into code or other artifacts. Tools like UML (Unified Modeling Language) are often used in MDD to create these models.
eg: Mendix

2. Drag-and-Drop Interfaces: Similar to node editors, drag-and-drop interfaces allow users to build applications by selecting components from a palette and dropping them onto a canvas. These components might represent UI elements, data sources, or other functional modules.
eg: Wordpress

3. Visual Programming: Visual programming languages enable developers to create programs by manipulating graphical elements rather than writing code textually. Examples include Scratch for educational purposes and LabVIEW for industrial automation.
Node editors in applications like Blender, Unreal Engine, Houdini are really good examples of visual programming

4. Code Generation: Code generation tools automatically produce code based on specifications, templates, or models provided by the developer. This can significantly reduce the amount of manual coding required.

5. Templates and Frameworks: Using pre-built templates, frameworks, and libraries can speed up development by providing ready-made components and functionality that can be customized and integrated into applications.

6. Component-Based Development: Component-based development involves building applications from reusable software components.
e.g.: thob


One of the problems with abstractions is something along the lines of "how far is too far" or "how much is too much" because it's difficult to reduce the complexity / sophistication while still being unopinionated and offer granular control over things. It's a challenge to find a good balance between making things easy while also offering more control of / over things.

One of the things which I was thinking about and also someone brought to my attention was how blender's node editor is a prime example of striking this balance, allowing users to compose complex logic visually while offering the option to delve into the details when needed.

In a sense being able to switch between easy and hard mode to put it very simply.

Simplifying 3D Customization


There should already be a couple blogs about the impact of 3D customization on our own website apart from all the other sources so I won't talk much about that rather we'll understand how we're trying to simplify the process using thob.

Consider you're a mass customization business i.e., you sell products with a huge number of customization options however all predefined. For you to build a 3D configurator of your product you or the person / team you'd hire to build it would require to have good knowledge / experience in 2 domains, Programming and Computer Graphic, on top of it to easily connect that with your E-commerce store maybe someone with that expertise.

Challenges:
- Finding the right person / people who understand the intricate details of the different domains involved.
- Bridging the gap between all the aspects.
- Managing ongoing / upcoming changes to the configurator as per your business requirement.


Imagine if you had a platform where you could just
- Visually design your own 3D configurator .
- Set its parameters.
- Integrate it with your website / ecommerce store.
- Keep publishing changes as per your business requirements as and when required.

If that sounds too good to be true well it might be xD but not completely, instead of trying to sell something through words I'd rather have you experience it after all giving an experience to your users / customers / viewers is probably the reason how you ended up here.

I've probably done this in my previous blog as well and I might just make this a pattern at this point which is to remind you that from the business perspective things might seem focused on product customisation, visualisation, mass customisation, etc however the platform is not limited to just those things, as far as the bounds are concerned that's something we can explore through the creativity of the community that we're looking forward to build in this journey.