<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Kriging is cool.	</title>
	<atom:link href="https://the-witness.net/news/2010/05/kriging-is-cool/feed/" rel="self" type="application/rss+xml" />
	<link>https://the-witness.net/news/2010/05/kriging-is-cool/</link>
	<description>Explore an abandoned island.</description>
	<lastBuildDate>Fri, 21 Oct 2016 21:00:28 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9</generator>
	<item>
		<title>
		By: Jay		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-8675020</link>

		<dc:creator><![CDATA[Jay]]></dc:creator>
		<pubDate>Fri, 21 Oct 2016 21:00:28 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-8675020</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-8675014&quot;&gt;Jay&lt;/a&gt;.

Upon further inspection I realized that the pseudo-inverse stuff is irrelevant because the matrix diagonal will always be nonzero. It should always be invertible, even with the compact support factor cooked in the matrix (which is crucial).
The upshot is that the outlined solution should be easier to verify.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-8675014">Jay</a>.</p>
<p>Upon further inspection I realized that the pseudo-inverse stuff is irrelevant because the matrix diagonal will always be nonzero. It should always be invertible, even with the compact support factor cooked in the matrix (which is crucial).<br />
The upshot is that the outlined solution should be easier to verify.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jay		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-8675014</link>

		<dc:creator><![CDATA[Jay]]></dc:creator>
		<pubDate>Fri, 21 Oct 2016 20:18:57 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-8675014</guid>

					<description><![CDATA[I think I may have identified your block continuity problem, and the solution should be pretty simple.

Like you said, zeroing a row of the matrix makes it rank-deficient. However, a valid &#039;variogram matrix&#039; (and it&#039;s inverse) is symmetric, so if a row is zero, the corresponding column must also be zero, in which case it is still pseudo-invertible (as if lower rank).

With that in mind, consider that even if a control point&#039;s immediate influence doesn&#039;t reach a given terrain block, it will reach other control points in the block&#039;s vicinity, and so the matrix will have nonzero elements somewhere along the row and column of that seemingly-cullable distant control point.

If all that is correct, the solution would be to include in the matrix for a terrain block all control points within r1 of any control point within r1 of the block (i.e. the neighborhood of the neighborhood).

(First make sure that the compact support factor is included when calculating the matrix, not just applied to the final weight vector. I assume it was, but that wasn&#039;t clear from the article.)

A quick test, assuming you have the means to compute pseudo-inverse instead of strict inverse, would be to expand the cull radius to &#039;2*r1&#039; instead of &#039;r1&#039; (some null rows/columns might result).

Sorry I&#039;m very late to the convo, but stumbled in while investigating similar things and thought that might be worth sharing.]]></description>
			<content:encoded><![CDATA[<p>I think I may have identified your block continuity problem, and the solution should be pretty simple.</p>
<p>Like you said, zeroing a row of the matrix makes it rank-deficient. However, a valid &#8216;variogram matrix&#8217; (and it&#8217;s inverse) is symmetric, so if a row is zero, the corresponding column must also be zero, in which case it is still pseudo-invertible (as if lower rank).</p>
<p>With that in mind, consider that even if a control point&#8217;s immediate influence doesn&#8217;t reach a given terrain block, it will reach other control points in the block&#8217;s vicinity, and so the matrix will have nonzero elements somewhere along the row and column of that seemingly-cullable distant control point.</p>
<p>If all that is correct, the solution would be to include in the matrix for a terrain block all control points within r1 of any control point within r1 of the block (i.e. the neighborhood of the neighborhood).</p>
<p>(First make sure that the compact support factor is included when calculating the matrix, not just applied to the final weight vector. I assume it was, but that wasn&#8217;t clear from the article.)</p>
<p>A quick test, assuming you have the means to compute pseudo-inverse instead of strict inverse, would be to expand the cull radius to &#8216;2*r1&#8217; instead of &#8216;r1&#8217; (some null rows/columns might result).</p>
<p>Sorry I&#8217;m very late to the convo, but stumbled in while investigating similar things and thought that might be worth sharing.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michiel		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-4527035</link>

		<dc:creator><![CDATA[Michiel]]></dc:creator>
		<pubDate>Tue, 20 May 2014 16:06:18 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-4527035</guid>

					<description><![CDATA[Hi Jonathan, if you&#039;re still willing to send out a copy of the code, I&#039;d be interested! Hoping to get away with inverse distance weighting for some interpolation I&#039;ll have to do, but it looks like kriging would give better results, and I&#039;d love to take a look at a working implementation to crib from.]]></description>
			<content:encoded><![CDATA[<p>Hi Jonathan, if you&#8217;re still willing to send out a copy of the code, I&#8217;d be interested! Hoping to get away with inverse distance weighting for some interpolation I&#8217;ll have to do, but it looks like kriging would give better results, and I&#8217;d love to take a look at a working implementation to crib from.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Erik		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-3794732</link>

		<dc:creator><![CDATA[Erik]]></dc:creator>
		<pubDate>Wed, 02 Apr 2014 18:02:53 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-3794732</guid>

					<description><![CDATA[I read the whole article, but not all of the comments; hopefully what I say is not irrelevant. 

The problem you reached was a result of trying to multiply by zero....what if instead of clamping the weights between [0, 1], have them asymptotically approach zero? That&#039;s the first thing that popped into my head.]]></description>
			<content:encoded><![CDATA[<p>I read the whole article, but not all of the comments; hopefully what I say is not irrelevant. </p>
<p>The problem you reached was a result of trying to multiply by zero&#8230;.what if instead of clamping the weights between [0, 1], have them asymptotically approach zero? That&#8217;s the first thing that popped into my head.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Josh Levenberg		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-729204</link>

		<dc:creator><![CDATA[Josh Levenberg]]></dc:creator>
		<pubDate>Fri, 26 Apr 2013 20:52:16 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-729204</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-729196&quot;&gt;Josh Levenberg&lt;/a&gt;.

I see others have mentioned natural neighbour interpolation below.  You can see a picture of the Prussian helmet effect on page 109 of http://technomagi.com/josh/math/phd.pdf .]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-729196">Josh Levenberg</a>.</p>
<p>I see others have mentioned natural neighbour interpolation below.  You can see a picture of the Prussian helmet effect on page 109 of <a href="http://technomagi.com/josh/math/phd.pdf" rel="nofollow ugc">http://technomagi.com/josh/math/phd.pdf</a> .</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Josh Levenberg		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-729196</link>

		<dc:creator><![CDATA[Josh Levenberg]]></dc:creator>
		<pubDate>Fri, 26 Apr 2013 20:40:15 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-729196</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-401&quot;&gt;Niv Fisher&lt;/a&gt;.

Interpolating surfaces suffers from the &quot;Prussian helmet eﬀect&quot;.  See:

Robin Sibson. A brief description of natural neighbour interpolation. In Vic Barnett, editor,
Interpreting Multivariate Data, chapter 2, pages 21–36. John Wiley &#038; Sons, 1981.

which also gives a good interpolation scheme for scattered data (based on Voronoi diagrams), assuming you have some way of estimating the tangent plane at your data samples.  And once you have the tangent planes, the interpolant is very local.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-401">Niv Fisher</a>.</p>
<p>Interpolating surfaces suffers from the &#8220;Prussian helmet eﬀect&#8221;.  See:</p>
<p>Robin Sibson. A brief description of natural neighbour interpolation. In Vic Barnett, editor,<br />
Interpreting Multivariate Data, chapter 2, pages 21–36. John Wiley &amp; Sons, 1981.</p>
<p>which also gives a good interpolation scheme for scattered data (based on Voronoi diagrams), assuming you have some way of estimating the tangent plane at your data samples.  And once you have the tangent planes, the interpolant is very local.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Dan Pool		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-28216</link>

		<dc:creator><![CDATA[Dan Pool]]></dc:creator>
		<pubDate>Wed, 29 Aug 2012 19:55:59 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-28216</guid>

					<description><![CDATA[Hi Jonathan,

I&#039;m developing a system which will use the Kriging method for displaying data.  I would be interested in the code you referred to above.  I&#039;ve not been able to find any working implementations other than a mathcad library, so if you know of any other existing code (the universities code that you reference above, for example),  I would be interested in looking at that, too.]]></description>
			<content:encoded><![CDATA[<p>Hi Jonathan,</p>
<p>I&#8217;m developing a system which will use the Kriging method for displaying data.  I would be interested in the code you referred to above.  I&#8217;ve not been able to find any working implementations other than a mathcad library, so if you know of any other existing code (the universities code that you reference above, for example),  I would be interested in looking at that, too.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: zaphos		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-2171</link>

		<dc:creator><![CDATA[zaphos]]></dc:creator>
		<pubDate>Tue, 04 Jan 2011 03:14:41 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-2171</guid>

					<description><![CDATA[@paceholder -- just looking at your pdf, I can&#039;t really tell what the artifacts are ... but if the artifacts you&#039;re seeing are related to the self-intersections in your smoothing-zone polygons, you could try using a different technique to build the smoothing zone? For example the &quot;straight skeleton&quot; can give you a nice offset curve that doesn&#039;t fold back on itself.]]></description>
			<content:encoded><![CDATA[<p>@paceholder &#8212; just looking at your pdf, I can&#8217;t really tell what the artifacts are &#8230; but if the artifacts you&#8217;re seeing are related to the self-intersections in your smoothing-zone polygons, you could try using a different technique to build the smoothing zone? For example the &#8220;straight skeleton&#8221; can give you a nice offset curve that doesn&#8217;t fold back on itself.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-2170</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 03 Jan 2011 23:43:22 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-2170</guid>

					<description><![CDATA[Well, my system doesn&#039;t work that way.  There isn&#039;t a &quot;base surface&quot; into which things are being smoothed.  The terrain surface is determined entirely by kriging the various data points; the only difference at any time is which points are being considered.]]></description>
			<content:encoded><![CDATA[<p>Well, my system doesn&#8217;t work that way.  There isn&#8217;t a &#8220;base surface&#8221; into which things are being smoothed.  The terrain surface is determined entirely by kriging the various data points; the only difference at any time is which points are being considered.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: paceholder		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-2169</link>

		<dc:creator><![CDATA[paceholder]]></dc:creator>
		<pubDate>Mon, 03 Jan 2011 21:42:38 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-2169</guid>

					<description><![CDATA[Could you give me some advice on smooth embedding kriged surface into the base one?

I used both kriging and RBF in my application, but still have problems with local update of the surface.

I have tried to build some polygone around the updating region. Then I built so-called smoothin zones where I lineary smoothed base surface and new one. But this approach gives some artifacts.

You can see small pdf document with description of my method: http://ubuntuone.com/p/WVc/]]></description>
			<content:encoded><![CDATA[<p>Could you give me some advice on smooth embedding kriged surface into the base one?</p>
<p>I used both kriging and RBF in my application, but still have problems with local update of the surface.</p>
<p>I have tried to build some polygone around the updating region. Then I built so-called smoothin zones where I lineary smoothed base surface and new one. But this approach gives some artifacts.</p>
<p>You can see small pdf document with description of my method: <a href="http://ubuntuone.com/p/WVc/" rel="nofollow ugc">http://ubuntuone.com/p/WVc/</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-527</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 07 Jul 2010 22:43:55 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-527</guid>

					<description><![CDATA[Well, here&#039;s the thing.  Because the height field is a regular grid, any rotation or non-quantized translation is going to destroy information.  So this is a lossy process, which means you actually want the control surfaces to stick around so that they contain the information in a clean form; otherwise, things will degrade slowly as you keep performing these operations on them.

However, the idea still does have applicability here; if one wanted to use some other kind of tool to sculpt a local area, it would then be interesting to apply a find-the-kriging-weights system to that in order to generalize it.]]></description>
			<content:encoded><![CDATA[<p>Well, here&#8217;s the thing.  Because the height field is a regular grid, any rotation or non-quantized translation is going to destroy information.  So this is a lossy process, which means you actually want the control surfaces to stick around so that they contain the information in a clean form; otherwise, things will degrade slowly as you keep performing these operations on them.</p>
<p>However, the idea still does have applicability here; if one wanted to use some other kind of tool to sculpt a local area, it would then be interesting to apply a find-the-kriging-weights system to that in order to generalize it.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rachel Blum		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-526</link>

		<dc:creator><![CDATA[Rachel Blum]]></dc:creator>
		<pubDate>Wed, 07 Jul 2010 19:43:24 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-526</guid>

					<description><![CDATA[The interesting question is, can you take a known heightfield and generate kriging control points with a minimal error for a given number of points...

Then you could pick up random areas of terrain and move them/rotate them, apply the changes back to the terrain, and be done with the control surfaces. Looking up &quot;inverse kriging&quot; brings at least one promising hit...]]></description>
			<content:encoded><![CDATA[<p>The interesting question is, can you take a known heightfield and generate kriging control points with a minimal error for a given number of points&#8230;</p>
<p>Then you could pick up random areas of terrain and move them/rotate them, apply the changes back to the terrain, and be done with the control surfaces. Looking up &#8220;inverse kriging&#8221; brings at least one promising hit&#8230;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-514</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 28 Jun 2010 19:07:33 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-514</guid>

					<description><![CDATA[It&#039;s our own code based on IMGUI principles.  GUI toolkits tend to all subscribe to the same retained-mode philosophy one way or the other, and require way too much work for what they actually get done.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s our own code based on IMGUI principles.  GUI toolkits tend to all subscribe to the same retained-mode philosophy one way or the other, and require way too much work for what they actually get done.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Torsten Giebl		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-511</link>

		<dc:creator><![CDATA[Torsten Giebl]]></dc:creator>
		<pubDate>Mon, 28 Jun 2010 04:02:39 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-511</guid>

					<description><![CDATA[Do you use any official GUI Toolkit for your own
designed tools or did you create your own
GUI functions ?]]></description>
			<content:encoded><![CDATA[<p>Do you use any official GUI Toolkit for your own<br />
designed tools or did you create your own<br />
GUI functions ?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zaphos		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-493</link>

		<dc:creator><![CDATA[Zaphos]]></dc:creator>
		<pubDate>Wed, 16 Jun 2010 20:55:47 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-493</guid>

					<description><![CDATA[Hmm, actually, after implementing Wendland&#039;s compact RBF, it does look like it&#039;s smooth everywhere in practice (though it does fall to zero when there are no near-enough control points, of course).  I made a processing applet to play around with it and posted it on the mollyrocket forums, if you want to try it out.  I&#039;ll put a link to the applet as my website, too. Note in the applet you need to press r a few times to switch it to the Wendland rbf (it defaults to the thin plate spline) and perhaps press t once to turn off the polynomial term.

Could you give some more detail re what the artifacts you see with compact support are?  I&#039;m curious to see if my applet has the same issues or not.  (Unfortunately the springerlink papers seem to be behind a paywall ...)]]></description>
			<content:encoded><![CDATA[<p>Hmm, actually, after implementing Wendland&#8217;s compact RBF, it does look like it&#8217;s smooth everywhere in practice (though it does fall to zero when there are no near-enough control points, of course).  I made a processing applet to play around with it and posted it on the mollyrocket forums, if you want to try it out.  I&#8217;ll put a link to the applet as my website, too. Note in the applet you need to press r a few times to switch it to the Wendland rbf (it defaults to the thin plate spline) and perhaps press t once to turn off the polynomial term.</p>
<p>Could you give some more detail re what the artifacts you see with compact support are?  I&#8217;m curious to see if my applet has the same issues or not.  (Unfortunately the springerlink papers seem to be behind a paywall &#8230;)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zaphos		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-490</link>

		<dc:creator><![CDATA[Zaphos]]></dc:creator>
		<pubDate>Mon, 14 Jun 2010 18:19:40 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-490</guid>

					<description><![CDATA[I looked in to the compact support RBF methods I was wondering about, and it looks like they guarantee smoothness only within a thin area around the control points, which is useful for designing a level set function but probably not helpful when making a height field.  Oops.]]></description>
			<content:encoded><![CDATA[<p>I looked in to the compact support RBF methods I was wondering about, and it looks like they guarantee smoothness only within a thin area around the control points, which is useful for designing a level set function but probably not helpful when making a height field.  Oops.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-474</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 08 Jun 2010 07:26:17 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-474</guid>

					<description><![CDATA[I really have no idea about the continuity issue.  About sparse vs dense, one of the first papers I read suggested going the sparse route in order to ensure continuity -- in that case, you just have every control point in the matrix all the time, but most of them are diagonal elements (no effect on the result).  What this means in terms of real, practical speed, I have no idea.  Part of the problem is that the attractiveness of various solutions will surely change depending on how many control points there are, and as I&#039;ve mentioned, there aren&#039;t so many yet.

In general, though, anything that tries to re-use prior solutions, etc, etc, I don&#039;t have patience for at the current time -- it is way too easy to rathole on tech (as discussed in the comments, the shadow map memory savings thing is sort of that, though it might help on consoles).  To have any prayer of shipping a game any time soon, we just have to do the simplest things possible wherever possible.

Of course sometimes it turns out that you need to do a lot of work in order to establish basic functionality.  If that turns out to be true, then in this case I probably would pursue it, because this way of modeling terrain really is the right thing for this game.  So, we&#039;ll see...]]></description>
			<content:encoded><![CDATA[<p>I really have no idea about the continuity issue.  About sparse vs dense, one of the first papers I read suggested going the sparse route in order to ensure continuity &#8212; in that case, you just have every control point in the matrix all the time, but most of them are diagonal elements (no effect on the result).  What this means in terms of real, practical speed, I have no idea.  Part of the problem is that the attractiveness of various solutions will surely change depending on how many control points there are, and as I&#8217;ve mentioned, there aren&#8217;t so many yet.</p>
<p>In general, though, anything that tries to re-use prior solutions, etc, etc, I don&#8217;t have patience for at the current time &#8212; it is way too easy to rathole on tech (as discussed in the comments, the shadow map memory savings thing is sort of that, though it might help on consoles).  To have any prayer of shipping a game any time soon, we just have to do the simplest things possible wherever possible.</p>
<p>Of course sometimes it turns out that you need to do a lot of work in order to establish basic functionality.  If that turns out to be true, then in this case I probably would pursue it, because this way of modeling terrain really is the right thing for this game.  So, we&#8217;ll see&#8230;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zaphos		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-473</link>

		<dc:creator><![CDATA[Zaphos]]></dc:creator>
		<pubDate>Tue, 08 Jun 2010 04:49:31 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-473</guid>

					<description><![CDATA[Do you know if Watson&#039;s complaints about C1 continuity for Kriging apply to all compactly supported RBF interpolation methods in general?  I thought some compact support RBF interpolation methods could guarantee smoothness ...

Also, have you considered solving a discretized version of the problem?  Often when I&#039;ve seen people implement thin plate splines for shape modeling (which are essentially the same problem as this I think?), instead of solving for the function weights directly they turn it into a finite difference or finite element problem and solve for the vertex positions that way.  It ends up giving a giant sparse matrix (one equation per free vertex), instead of a smaller dense matrix, but since sparse solvers scale much better it can turn out to be faster depending on the problem.  Also, as long as the constraints don&#039;t change too rapidly during editing, you can get a speed boost by reusing previous solutions (or previous factorizations, for sparse direct solvers).]]></description>
			<content:encoded><![CDATA[<p>Do you know if Watson&#8217;s complaints about C1 continuity for Kriging apply to all compactly supported RBF interpolation methods in general?  I thought some compact support RBF interpolation methods could guarantee smoothness &#8230;</p>
<p>Also, have you considered solving a discretized version of the problem?  Often when I&#8217;ve seen people implement thin plate splines for shape modeling (which are essentially the same problem as this I think?), instead of solving for the function weights directly they turn it into a finite difference or finite element problem and solve for the vertex positions that way.  It ends up giving a giant sparse matrix (one equation per free vertex), instead of a smaller dense matrix, but since sparse solvers scale much better it can turn out to be faster depending on the problem.  Also, as long as the constraints don&#8217;t change too rapidly during editing, you can get a speed boost by reusing previous solutions (or previous factorizations, for sparse direct solvers).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-460</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 05 Jun 2010 02:02:55 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-460</guid>

					<description><![CDATA[None of the kriging happens at runtime, so it doesn&#039;t matter.

In general, though, I care more about the game than about what platforms it is coming out on.  So if we needed to do something for the game to reach its full potential, and that thing doesn&#039;t work on some specific platform, then the answer is probably just not to release on that platform (or else to release an inferior version on that platform).]]></description>
			<content:encoded><![CDATA[<p>None of the kriging happens at runtime, so it doesn&#8217;t matter.</p>
<p>In general, though, I care more about the game than about what platforms it is coming out on.  So if we needed to do something for the game to reach its full potential, and that thing doesn&#8217;t work on some specific platform, then the answer is probably just not to release on that platform (or else to release an inferior version on that platform).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: T-82		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-459</link>

		<dc:creator><![CDATA[T-82]]></dc:creator>
		<pubDate>Fri, 04 Jun 2010 20:21:04 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-459</guid>

					<description><![CDATA[I&#039;m assuming you wouldn&#039;t be using this technic if the PS3 couldn&#039;t handle it, right?]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m assuming you wouldn&#8217;t be using this technic if the PS3 couldn&#8217;t handle it, right?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-455</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 03 Jun 2010 04:11:49 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-455</guid>

					<description><![CDATA[An update on this...

I was working out a more-formalized way to get compact support in kriging.  But even when I did it the supposedly right way, I still saw some artifacts.  Researching why led me to the following complaint by Philip and Watson:

http://www.springerlink.com/content/kh71041n26070768/

(Watson is the very same David Watson mentioned in these comments by James McNeill).  This referred to another paper that shows discontinuities that happen with kriging:

http://www.springerlink.com/content/r73v34635g6m1718/

Which looks exactly like the artifacts that I get when I don&#039;t try to mitigate them, so I know that my kriging code is working properly and that we are on the same page.

This complaint and other follow-up paper were encouraging the use of Natural Neighbor Interpolation as a way of solving these problems, so I decided to try it.

With some searching I found  Pavel Sakov&#039;s nn library for Natural Neighbor Interpolation:  http://code.google.com/p/nn-c/

I got this integrated into the game and working fairly quickly.  The results are better than I postulated earlier in this thread (indeed, triangles are not quite faceted, I didn&#039;t understand the algorithm so well when posting that comment).  However, while not quite faceted, the shapes generated by natural neighbor interpolation are not so natural, at least for a sparse set of sample points. The results from kriging look a lot better with many fewer sample points.  So now I am back to kriging and working on ways of minimizing the artifacts and speeding it up.   Seeking some outside help from experienced geostaticians in this area.]]></description>
			<content:encoded><![CDATA[<p>An update on this&#8230;</p>
<p>I was working out a more-formalized way to get compact support in kriging.  But even when I did it the supposedly right way, I still saw some artifacts.  Researching why led me to the following complaint by Philip and Watson:</p>
<p><a href="http://www.springerlink.com/content/kh71041n26070768/" rel="nofollow ugc">http://www.springerlink.com/content/kh71041n26070768/</a></p>
<p>(Watson is the very same David Watson mentioned in these comments by James McNeill).  This referred to another paper that shows discontinuities that happen with kriging:</p>
<p><a href="http://www.springerlink.com/content/r73v34635g6m1718/" rel="nofollow ugc">http://www.springerlink.com/content/r73v34635g6m1718/</a></p>
<p>Which looks exactly like the artifacts that I get when I don&#8217;t try to mitigate them, so I know that my kriging code is working properly and that we are on the same page.</p>
<p>This complaint and other follow-up paper were encouraging the use of Natural Neighbor Interpolation as a way of solving these problems, so I decided to try it.</p>
<p>With some searching I found  Pavel Sakov&#8217;s nn library for Natural Neighbor Interpolation:  <a href="http://code.google.com/p/nn-c/" rel="nofollow ugc">http://code.google.com/p/nn-c/</a></p>
<p>I got this integrated into the game and working fairly quickly.  The results are better than I postulated earlier in this thread (indeed, triangles are not quite faceted, I didn&#8217;t understand the algorithm so well when posting that comment).  However, while not quite faceted, the shapes generated by natural neighbor interpolation are not so natural, at least for a sparse set of sample points. The results from kriging look a lot better with many fewer sample points.  So now I am back to kriging and working on ways of minimizing the artifacts and speeding it up.   Seeking some outside help from experienced geostaticians in this area.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-431</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 30 May 2010 06:39:19 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-431</guid>

					<description><![CDATA[It&#039;s unlikely.  It would be very difficult to add meaningful content (due to the way the gameplay works).  

On top of this, not very many people used the Braid editor.  This may be largely due to the fact that it is not explicitly called out in-game, with  a menu option or something.  But, in order to promote an editor as a feature at that level it has to have way, way more work put into it than made sense at that time.  I would expect the same thing to be true for The Witness.  

My current thinking on this is, if your game is designed around user-made content, then it totally makes sense to make the editor great and expose it in a high-profile way.  Otherwise, it doesn&#039;t make sense, because the number of people who will use such an editor is not very high, and pragmatically speaking, you can add more to the world / create more interesting times for more people just by working on the next game.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s unlikely.  It would be very difficult to add meaningful content (due to the way the gameplay works).  </p>
<p>On top of this, not very many people used the Braid editor.  This may be largely due to the fact that it is not explicitly called out in-game, with  a menu option or something.  But, in order to promote an editor as a feature at that level it has to have way, way more work put into it than made sense at that time.  I would expect the same thing to be true for The Witness.  </p>
<p>My current thinking on this is, if your game is designed around user-made content, then it totally makes sense to make the editor great and expose it in a high-profile way.  Otherwise, it doesn&#8217;t make sense, because the number of people who will use such an editor is not very high, and pragmatically speaking, you can add more to the world / create more interesting times for more people just by working on the next game.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Reginald		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-430</link>

		<dc:creator><![CDATA[Reginald]]></dc:creator>
		<pubDate>Sat, 29 May 2010 19:36:29 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-430</guid>

					<description><![CDATA[Will the Witness ship with the in-game editor, the way that Braid did ?]]></description>
			<content:encoded><![CDATA[<p>Will the Witness ship with the in-game editor, the way that Braid did ?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-425</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 28 May 2010 19:10:15 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-425</guid>

					<description><![CDATA[I don&#039;t actually know how many control points are in the world right now.  But it wouldn&#039;t make sense to count yet, since it is a lot less detailed than it will be eventually, and that means there are going to be many more control points.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t actually know how many control points are in the world right now.  But it wouldn&#8217;t make sense to count yet, since it is a lot less detailed than it will be eventually, and that means there are going to be many more control points.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zaphos		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-422</link>

		<dc:creator><![CDATA[Zaphos]]></dc:creator>
		<pubDate>Fri, 28 May 2010 06:44:57 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-422</guid>

					<description><![CDATA[This sounds a lot like a 2d version of using radial basis functions for modeling -- like James  O&#039;Brien and Greg Turk&#039;s &quot;Modelling with Implicit Surfaces that Interpolate&quot;?

To speed it up, I think for RBFs with global support people have used the Fast Multipole Method to do faster solvers.  Alternatively, for compact support interpolating implicits, perhaps check out the &quot;Multi-level Partition of Unity Implicits&quot; paper?

How many control points do you use for your whole world?]]></description>
			<content:encoded><![CDATA[<p>This sounds a lot like a 2d version of using radial basis functions for modeling &#8212; like James  O&#8217;Brien and Greg Turk&#8217;s &#8220;Modelling with Implicit Surfaces that Interpolate&#8221;?</p>
<p>To speed it up, I think for RBFs with global support people have used the Fast Multipole Method to do faster solvers.  Alternatively, for compact support interpolating implicits, perhaps check out the &#8220;Multi-level Partition of Unity Implicits&#8221; paper?</p>
<p>How many control points do you use for your whole world?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-408</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 24 May 2010 18:34:26 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-408</guid>

					<description><![CDATA[(Thinking about it more, one property that you would inevitably lose in Natural Neighbor Inerpolation is the ability to add control points without changing the surface... for example, if there is a quad in the Voronoi diagram, and you add a control point interior to it such that the new point makes a triangle with two of the quad&#039;s corners, all the curvature inside that triangle is going to disappear.  Unless again there is some smoothing going on, but then the question is, what are the properties of the smoothing and are they invariant under the insertion of control points?)]]></description>
			<content:encoded><![CDATA[<p>(Thinking about it more, one property that you would inevitably lose in Natural Neighbor Inerpolation is the ability to add control points without changing the surface&#8230; for example, if there is a quad in the Voronoi diagram, and you add a control point interior to it such that the new point makes a triangle with two of the quad&#8217;s corners, all the curvature inside that triangle is going to disappear.  Unless again there is some smoothing going on, but then the question is, what are the properties of the smoothing and are they invariant under the insertion of control points?)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-407</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 24 May 2010 18:00:47 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-407</guid>

					<description><![CDATA[Niv: If you decide to interpolate surfaces then you immediately lose what to me is one of the most valuable properties, which is that control points are interpolated exactly.  If you want the terrain to go through a certain point, you just mark that point... that is huge in terms of modeling ability.

James: Interesting, but I worry about the idea for this kind of application.  If you are inserting your samples into a Voronoi diagram, then you are always interpolating between only very-close neighbors.  In cases where you are interpolating on a triangle or near-triangle (which are pretty common in Voronoi diagrams), you are going to just be linearly interpolating between 3 points, i.e. making a flat plane.  So the result would exhibit hard facets very often.  I think the estimation-of-normals you are talking about would be key in eliminating that problem... Certainly though, this method would be a lot faster than what I am doing, and if the smoothing makes it usable, that would be cool.

Marc: As I mentioned, I want to interpolate points.  I don&#039;t want to treat each point as an individual summed Gaussian or whatever that moves around, because that would be unmanageable, and it&#039;s very difficult in that kind of scheme to get smooth surfaces of the shape you want without endlessly tweaking the widths and heights of neighbor points... and then if you want to make a small change, say hello to more endless tweaking.  No good.]]></description>
			<content:encoded><![CDATA[<p>Niv: If you decide to interpolate surfaces then you immediately lose what to me is one of the most valuable properties, which is that control points are interpolated exactly.  If you want the terrain to go through a certain point, you just mark that point&#8230; that is huge in terms of modeling ability.</p>
<p>James: Interesting, but I worry about the idea for this kind of application.  If you are inserting your samples into a Voronoi diagram, then you are always interpolating between only very-close neighbors.  In cases where you are interpolating on a triangle or near-triangle (which are pretty common in Voronoi diagrams), you are going to just be linearly interpolating between 3 points, i.e. making a flat plane.  So the result would exhibit hard facets very often.  I think the estimation-of-normals you are talking about would be key in eliminating that problem&#8230; Certainly though, this method would be a lot faster than what I am doing, and if the smoothing makes it usable, that would be cool.</p>
<p>Marc: As I mentioned, I want to interpolate points.  I don&#8217;t want to treat each point as an individual summed Gaussian or whatever that moves around, because that would be unmanageable, and it&#8217;s very difficult in that kind of scheme to get smooth surfaces of the shape you want without endlessly tweaking the widths and heights of neighbor points&#8230; and then if you want to make a small change, say hello to more endless tweaking.  No good.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Marc		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-405</link>

		<dc:creator><![CDATA[Marc]]></dc:creator>
		<pubDate>Mon, 24 May 2010 16:05:07 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-405</guid>

					<description><![CDATA[I&#039;m probably missing something here, but why not sum the points instead of blending between them? It might make the behavior a bit harder to control, because you&#039;re not interpolating control points anymore, but since you can display the result exactly, does it matter? Basically each point would would be a smooth peak that you&#039;re adding to the height of the terrain. You could still rotate a group of points. Most importantly, you could throw away the whole Kriging thing. It&#039;s much less cool though. Another idea would be to arbitrarily group control points together, Kringe them, then sum the results. You will need to group points together by game area though, and the boundaries will be harder to control, so that may not be such a good idea.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m probably missing something here, but why not sum the points instead of blending between them? It might make the behavior a bit harder to control, because you&#8217;re not interpolating control points anymore, but since you can display the result exactly, does it matter? Basically each point would would be a smooth peak that you&#8217;re adding to the height of the terrain. You could still rotate a group of points. Most importantly, you could throw away the whole Kriging thing. It&#8217;s much less cool though. Another idea would be to arbitrarily group control points together, Kringe them, then sum the results. You will need to group points together by game area though, and the boundaries will be harder to control, so that may not be such a good idea.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: James McNeill		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-404</link>

		<dc:creator><![CDATA[James McNeill]]></dc:creator>
		<pubDate>Mon, 24 May 2010 14:40:46 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-404</guid>

					<description><![CDATA[Natural neighbor interpolation might be worth consideration as an alternative to Kriging:

http://en.wikipedia.org/wiki/Natural_neighbor

The basic idea is to build a Voronoi diagram of the control points. Then, for each sample point on the height field grid, you pretend you&#039;re inserting it into the Voronoi diagram. The sample point is a weighted sum of the control points from which it would have stolen area; the weight for each control point is how much area it&#039;s contributed to the new Voronoi region.

This algorithm has local support built in so updates could be made fairly efficient. The surface is smooth everywhere except at the control points. It works well with anisotropic sample data; for instance, if you have sampled the terrain in long strips of data points, i.e. Mars orbiters:

http://pirlwww.lpl.arizona.edu/~abramovo/MOLA_interpolation/interpolation.html

I initially encountered natural neighbor interpolation years ago via Dave Watson, a professor at an Australian university. Unfortunately he seems to have dropped off of the web. I remember he had a modification to this algorithm where you could estimate (or define) normals at the control points and add those into the interpolation to get rid of slope discontinuities there.]]></description>
			<content:encoded><![CDATA[<p>Natural neighbor interpolation might be worth consideration as an alternative to Kriging:</p>
<p><a href="http://en.wikipedia.org/wiki/Natural_neighbor" rel="nofollow ugc">http://en.wikipedia.org/wiki/Natural_neighbor</a></p>
<p>The basic idea is to build a Voronoi diagram of the control points. Then, for each sample point on the height field grid, you pretend you&#8217;re inserting it into the Voronoi diagram. The sample point is a weighted sum of the control points from which it would have stolen area; the weight for each control point is how much area it&#8217;s contributed to the new Voronoi region.</p>
<p>This algorithm has local support built in so updates could be made fairly efficient. The surface is smooth everywhere except at the control points. It works well with anisotropic sample data; for instance, if you have sampled the terrain in long strips of data points, i.e. Mars orbiters:</p>
<p><a href="http://pirlwww.lpl.arizona.edu/~abramovo/MOLA_interpolation/interpolation.html" rel="nofollow ugc">http://pirlwww.lpl.arizona.edu/~abramovo/MOLA_interpolation/interpolation.html</a></p>
<p>I initially encountered natural neighbor interpolation years ago via Dave Watson, a professor at an Australian university. Unfortunately he seems to have dropped off of the web. I remember he had a modification to this algorithm where you could estimate (or define) normals at the control points and add those into the interpolation to get rid of slope discontinuities there.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: tomat		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-402</link>

		<dc:creator><![CDATA[tomat]]></dc:creator>
		<pubDate>Mon, 24 May 2010 08:59:57 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-402</guid>

					<description><![CDATA[Pretty cool and this way you could not only rotate but even do scale and uniform scale too. For example to do a narrow hill passage wider.]]></description>
			<content:encoded><![CDATA[<p>Pretty cool and this way you could not only rotate but even do scale and uniform scale too. For example to do a narrow hill passage wider.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Niv Fisher		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-401</link>

		<dc:creator><![CDATA[Niv Fisher]]></dc:creator>
		<pubDate>Mon, 24 May 2010 08:56:30 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-401</guid>

					<description><![CDATA[Great post!
Always nice to see work from other fields put to use. Actually, I&#039;m sure I&#039;ll find use for this method, which is basically a structure-less control point interpolation.

I still haven&#039;t dug into the Kriging algorithm and obviously have no idea how your terrain system works, But I do have one comment/suggestion regarding &#039;compact support&#039; you mentioned: 

Did you try interpolating surfaces instead of weights? 
What I mean is, you could generate one Kriging matrix for each of the terrain blocks containing the control points from that block and extending into adjacent blocks  (you can make the overlap as big as you like by increasing the radius of interest).

When trying to evaluate the height of a sample you need to sample each &#039;Kriging surface&#039; that covers your sample and interpolate between the different surface results. Just need to figure out the weight for each surface which shouldn&#039;t be difficult. If anything that should assure continuity.

If you have an overlap of 1/2 a terrain block (choose r = grid_block_size * 1.5) you could be done with just sampling 4 surfaces. On the down side, you might loose some local support away from the grid block centers - but with an overlap of a full terrain block you still get just 9 samples which should still be pretty fast and practically quite accurate.

Anyway thanks for all that info, cool stuff!]]></description>
			<content:encoded><![CDATA[<p>Great post!<br />
Always nice to see work from other fields put to use. Actually, I&#8217;m sure I&#8217;ll find use for this method, which is basically a structure-less control point interpolation.</p>
<p>I still haven&#8217;t dug into the Kriging algorithm and obviously have no idea how your terrain system works, But I do have one comment/suggestion regarding &#8216;compact support&#8217; you mentioned: </p>
<p>Did you try interpolating surfaces instead of weights?<br />
What I mean is, you could generate one Kriging matrix for each of the terrain blocks containing the control points from that block and extending into adjacent blocks  (you can make the overlap as big as you like by increasing the radius of interest).</p>
<p>When trying to evaluate the height of a sample you need to sample each &#8216;Kriging surface&#8217; that covers your sample and interpolate between the different surface results. Just need to figure out the weight for each surface which shouldn&#8217;t be difficult. If anything that should assure continuity.</p>
<p>If you have an overlap of 1/2 a terrain block (choose r = grid_block_size * 1.5) you could be done with just sampling 4 surfaces. On the down side, you might loose some local support away from the grid block centers &#8211; but with an overlap of a full terrain block you still get just 9 samples which should still be pretty fast and practically quite accurate.</p>
<p>Anyway thanks for all that info, cool stuff!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-400</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 24 May 2010 08:50:59 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-400</guid>

					<description><![CDATA[The variogram doesn&#039;t talk about the samples you are solving for at all.  It is basically just a big matrix of correlations between the height values of the control points, where each correlation is just defined to be some function of distance that is tweaked in the way you desire.  You invert that matrix; then the B vector that you multiply through is the correlations of the control points with the sample point that you want to solve for.  This is a system of linear equations, the solution to which is a set of weights for each control point.

So when you are solving for one specific sample point of the terrain, you only think about that sample point and the control points; you don&#039;t think about any other sample points.  (This is a little different from the geostatistics way of thinking about it, where the control points are some of the sample points.)]]></description>
			<content:encoded><![CDATA[<p>The variogram doesn&#8217;t talk about the samples you are solving for at all.  It is basically just a big matrix of correlations between the height values of the control points, where each correlation is just defined to be some function of distance that is tweaked in the way you desire.  You invert that matrix; then the B vector that you multiply through is the correlations of the control points with the sample point that you want to solve for.  This is a system of linear equations, the solution to which is a set of weights for each control point.</p>
<p>So when you are solving for one specific sample point of the terrain, you only think about that sample point and the control points; you don&#8217;t think about any other sample points.  (This is a little different from the geostatistics way of thinking about it, where the control points are some of the sample points.)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ryan Moulton		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-399</link>

		<dc:creator><![CDATA[Ryan Moulton]]></dc:creator>
		<pubDate>Mon, 24 May 2010 08:19:58 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-399</guid>

					<description><![CDATA[The one part of this that confuses me is the variogram. Does it learn the spatial dependence of  two separated samples just based on the control points you&#039;ve already placed? I feel like I&#039;m missing something there.

Seems like something like compressed sensing / basis pursuit could work pretty well too. http://en.wikipedia.org/wiki/Compressed_sensing]]></description>
			<content:encoded><![CDATA[<p>The one part of this that confuses me is the variogram. Does it learn the spatial dependence of  two separated samples just based on the control points you&#8217;ve already placed? I feel like I&#8217;m missing something there.</p>
<p>Seems like something like compressed sensing / basis pursuit could work pretty well too. <a href="http://en.wikipedia.org/wiki/Compressed_sensing" rel="nofollow ugc">http://en.wikipedia.org/wiki/Compressed_sensing</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Maksym Diachenko		</title>
		<link>https://the-witness.net/news/2010/05/kriging-is-cool/comment-page-1/#comment-398</link>

		<dc:creator><![CDATA[Maksym Diachenko]]></dc:creator>
		<pubDate>Mon, 24 May 2010 07:55:22 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=345#comment-398</guid>

					<description><![CDATA[Very interesting. This inspired me to try it out! =)
Is it possible to get your version of Kriging math implementation on max.dyachenko (at) gmail.com?

Thanks!]]></description>
			<content:encoded><![CDATA[<p>Very interesting. This inspired me to try it out! =)<br />
Is it possible to get your version of Kriging math implementation on max.dyachenko (at) gmail.com?</p>
<p>Thanks!</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
