Adjustable Sigmoid Curve (S-Curve) from $(0,0)$ to $ (1,1)$

I put three in a chain: I use the positive domain of the NTS to 'skew' the input, the second is the basic sigmoid, and then I use the positive domain to skew the output. The result is an extremely flexible curve which I tend to use everywhere now. Here is a Desmos sheet, I think it is what you were looking for, although the other answers seem good too. https://www.desmos.com/calculator/tswgrnoosy


I really hate to answer my own question but I believe I found the answer. I tripped across an equation by Game Dev Dino Dini which creates a half normal tunable sigmoid that ranges from $(0,0)$ to $(1,1)$. However the $K$ value is rather wonky in this case. Dino however created another version which he posted via Twitter leading to a half normal tunable sigmoid with a K range from -1 to 1. This equation is...

$$\large \frac{kx-x}{2kx-k-1}=f(x)$$

$$ 0\leq x\leq 1,-1\leq k\leq 1$$

To achieve a S curve in the same range I simply had to scale down the equation and make it piecewise. The lower half then becomes...

$$\large \frac{k*2x-2x}{2k*2x-k-1}*0.5$$ $$or$$ $$\large f(2x)*0.5$$ $$for$$ $$x\leq0.5, -1\leq k \leq 1$$

And then the upper half of the curve is...

$$\large 0.5*\frac{(-k*2(x-0.5))-(2(x-0.5)))}{2*-k*2(x-0.5)-(-k)-1}+0.5$$ $$or$$ $$\large 0.5*f(2(x-0.5))+0.5$$ $$for$$ $$ x>0.5, -1\leq -k \leq 1$$

note the $k$ is negative for the upper half of the curve. Here is an example of the lower half and the upper half. The only issue that remains with this equation is that technically $k = -1,1$ returns $y = 0$, however $k = -0.9...,0.9...$ is close enough. Unfortunately it would appear I cannot adjust my point of inflection to be anything other than $y=x=0.5$ but that was not necessary for the core operation.


3 years late, but I was looking for an answer to the same question & all the responses on here seem overly complicated...

I ended up working it out on my own and got the solution below which is mathematically perfect:

y = 0.5 * (1 + sin((x*pi)-(pi/2)))

Check it out on Wolfram Alpha