Skip to content

Posts tagged ‘N-Spaces’

Corrective blendshapes/deltas as the form of an linear combination unknown.

August 23, 2008


I’ve just started watching the Gilbert Strang MIT Courseware on iTunes, and highly recommend it – after watching it a light bulb went off in my head. Daniel Pook Kolb’s Blendshape system is very very impressive – but I did’nt and still dont understand it fully.

Thinking out loud here I thought that it might be essentially a form of finding out the ‘unknown’ in a linear combination of an nth dimensional space as the corrective of the combining shapes. For example the unknown of : 

x[2,3] +  y [4,5]  = [6,7] would be [-1, 2] ( its hard to show as i’m not using LaTex atm)

Before any corrective is used the  ‘unknown’ is [0,0], this would be synomanous to  adding two blendshapes together without any corrective.

More Euclidean (n-space) notes..

December 25, 2006


So I’m back in the UK spending christmas with family, but had some time to think about the relationship between datasets and n-space’s.  An n space of 2 is pretty easy to work out as the dataset existing in that space can either be (1), (2) or (1,2) and has a direct relationship to the vector existing in the space the datasets reside. What gets trick is when the dimensions get bigger:

For instance a 3n space consists of 3 weights and datasets existing at aproximately 7 places at positions of 1 and infinite inbetween positions like so: [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3] What gets tricky is that the if a dataset exists at [1,2,3] (a value of 1.0 at each dimension) with a vector in this space: [.5, .5, 0]. How does the dataset know about the 0?

We’ll it should’nt – infact this is what im doing with the dataset, if a dataset is at [1,1,0] then really its at [1,2] with a value along each of these dimensions. So this is what theoretically what im doing with the nspace – essentially its dynamic. If I have 3 weights but only 2 are greater than 0, then I only use them in my nspace like so,

[1,0,1] = [1,3]

then i’ll do a cross-check against these. Dont know if this is correct but, im gettting there slowly.

Facial Research..

December 9, 2006


I took another look at some research on n-space combination sculpture today and the light-bulb ( i think) finally went off in my head as to how it works. Essentially you have four parts:

  • A n-space comprised of weights
  • A set of targets (i.e shapes)
  • An orgin/neutral shape
  • A vector (the sum of the weights)

The old ideas of standard blendshapes basically go out the window, but the power you gain is pretty amazing – and in theory can be used for any facial type setup including bones and muscle rigs.

In simple terms, you associate a target(shape) to a weight,this for all instances is standard blendshape stuff – but with n-space combinations you can associate a target to more than one weight.

 For example lets say we have two targets: A and B, and there respective weights: w1[1,0] and w2[0,1] remember weights exist in an n-space so if there was 3 it would be as follow w1[1,0,0] , w2[0,1,0]  and w3 [0,0,1]. These do nothing atm, until we associate a target(s) to them so e.g target a is associated to w1 at [0.5,0] ( a target doesnt have to be at 1 of the weight)

 Still follow? Well simply put we define a space from weights so point1 would be just one weight, a point2 would be 2 weights and a point3 would be three weights.. and so on. If we have a space of the nth number its an n-space so if we have 30 weights, i.e sliders in our rig we have…. yes….. an n-space of 30 dimensions!

Now the clever part comes in that the system basically cant break. The cool part comes in that you can associate a target shape to 1 or more weights(sliders)! so say we set weight w1 at a value of 1 so [1,0] and w2 the same [0,1] we now have a combined value of: [1,1] and this shape combination may not work. So we associate a new shape to this weight vector.

All that changing the value of the weights does is that it moves a vector through the space of what its comprise of eg. 3 weights [.3,0,0] [0,.2,0] [0,0,.7]  we have a vector in this space: [0.3,0.2,0.7].

What i dont fully understand is achieving the final, delta. But im working on it – the funny thing is Jason Osipas setup is very reminesent of this n-space idea, working in planes etc. And could easily i think be adapted to work with it.

more to come..