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;