Half, Half Half, and, Half
Haskell, 25 bytes



pred.until(&lt;2)(/2).(+0.5)


Try it online!

Outputs decimals, one-indexed without the initial zero term. 

Adds 0.5 to the input, then halves until the results is below 2, then subtracts 1. Using a pointfree expression saves 1 bytes over

f n=until(&lt;2)(/2)(n+0.5)-1