
Show HN: Uncanny Valley – Interactive WebGL and WebAudio Demo - bd
http://fractalfantasy.net/#/4/uncanny_valley
======
bd
Lights move according to music. For the first song strobing can be too much,
sorry for that, musicians liked it like that ;).

If this is uncomfortable, you can press F key to freeze lights changes (I
implemented this feature exactly for that).

Second and third songs are much gentler, so you may try checking those out
(keys 1,2,3 change the song, keys 4,5,6 change the head for the current song).

------
degenerate
Why does the lighting source keep frantically changing on the faces? That is
very annoying. Maybe it's only a problem on my hardware.

~~~
calebm
I think it keeps your mind from locking in on fake aspects of the faces, to
make it look more real.

------
Excavator
Tested in Firefox (41), and Firefox Nightly (44.0a1) under up-to-date Linux
with Skia.

This breaks for me when the viewport is higher than its width, which is how I
normally have it. It breaks by not drawing the head and only drawing the bits
that overlay the eyes.

Also getting some warnings in the console, unsure if it's due to the site or
the browsers implementaion:

PROGRAM_INFO_LOG: warning: sampler arrays indexed with non-constant
expressions is forbidden in GLSL 110 warning: Variable sampler array index
unsupported. This feature of the language was removed in GLSL 1.20 and is
unlikely to be supported for 1.10 in Mesa. warning: Variable sampler array
index unsupported. This feature of the language was removed in GLSL 1.20 and
is unlikely to be supported for 1.10 in Mesa. [···] repeats

~~~
bd
Viewport aspect ratio is likely unrelated.

Those warnings mean your GPU driver doesn't support a feature that's critical
for shaders used there. Sorry for that :(

Which GPU do you have?

The last time I encountered a similar issue was on my old Thinkpad with
ancient ATI 3650 Mobility Radeon GPU (on Windows but only when running OpenGL
rendering backend, DirectX ANGLE backend was ok, so it wasn't really hardware
issue, just drivers).

\-----

BTW to see how it looks when it works properly, here are video captures:

[https://www.youtube.com/playlist?list=PLwLlCBbP0Cc57IQLBH_8j...](https://www.youtube.com/playlist?list=PLwLlCBbP0Cc57IQLBH_8jnuMZlFh0OI0S)

~~~
Excavator
I currently have a single die CPU+GPU, the AMD A10-7850K, as I'm having some
issues with the PCI-E ports that I have yet had time to troubleshoot. Good to
know where the issues lie at least, thanks for the explanations!

In regards to working properly: It does work as in the videos as long as the
aspect ratio is "correct".

------
kaoD
I'm curious: why does it feel like they're looking _at_ me when I see them
frontally, but like they're looking _past_ me in other angles? Is it only me?

Very noticeable with the farthest camera. It's less pronounced with the old
guy, but the black one is really jarring for me.

~~~
bd
We are very sensitive to event the smallest details about human eyes. There
are some aspects that are not modeled in this demo.

Probably the most important is that head models are completely static: they
were "frozen in time" from the time of 3D scan, in exactly one position, one
facial expression, one eyes focus.

Each of the models were captured with slightly different eyes orientation /
position / focus. Black one especially doesn't look "at you", he looked "past
you" when the capture was made.

Demo only changes eyeballs orientations but the rest of the head stays always
the same, mesh is static. In the real world when eyes move, also eyelids and
skin around moves. We use these details as additional source of information
when guessing where the person is looking at.

Another aspect that's missing is a proper physiologically-correct cross-
eyedness due to focus distance. When you look at the same point but at
different distances, eyes will move closer/further apart, but not in a simple
geometric way, there are physiological constrains.

------
calebm
That really is uncanny. I had this feeling like there was actually a living
person there in my computer.

~~~
bd
For the best "uncanny valley" effect, try fullscreen mode (press G) and then
try different zoom levels (press Z) to find the one that look closest to the
real human head size on your monitor.

If your GPU is fast, you can also try ultra mode (should be autodetected, but
you can force it by presssing U even if detection fails).

------
imagex
I'm seeing the same rapidly alternating light source on Windows 8.1 / Geforce
980, both in Chrome 45.0.2454.101 m and Firefox 41.0.1

It's disorienting, seriously adding to the uncanny factor.

Otherwise, the shaders look magnificent. Keeping this to spook the kids on
Halloween.

~~~
tech-no-logical
you can freeze the lighting with 'F'. press 'H' for more options.

------
fuzzythinker
Totally crashed my ubuntu 14.04 opening it in FF.

