The commune is situated in the middle Val Camonica, on the right bank of the river Oglio. Neighbouring communes are Berzo Demo, Capo di Ponte, Cedegolo and Paisco Loveno. The highest point is Monte Elto, which is 2,145 metres high.