The setup that looks fine
You build a 3D product configurator in Three.js. User picks material, size, options - and next to the model, a live price updates as they configure. The frontend calculates it because that is fast, feels responsive, and does not need a network trip.
The code looks like this:
function calculatePrice(config) {
let price = BASE_PRICE;






