<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jcjohns</title><link>https://news.ycombinator.com/user?id=jcjohns</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 02 Sep 2026 07:00:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jcjohns" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>Unfortunately that's a complex question... this depends on the number of diffusion steps, the size of the context, the image resolution, and the type and number of inference devices we use. There are lots of knobs to trade off speed, quality, latency, throughput, and cost.<p>An ideal workflow would be something semi-interactive that you can use to quickly iterate on an idea, followed by a longer offline bake-out to generate final production-quality assets.</p>
]]></description><pubDate>Wed, 02 Sep 2026 01:12:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49530525</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49530525</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49530525</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>One of the biggest differences is the conditioning signal. Genie 3 and similar input raw keyboard commands (WASD + arrow keys), while Atlas inputs camera poses. This small difference means that Genie 3 has no 3D whatsoever; the model needs to learn an internal mapping between keyboard commands, world states, and pixels; and with Genie 3 there is no clear way to control the generated world aside from the input image and text prompt. Since Atlas makes camera pose explicit it can use posed input frames to shape the generated world, giving you a lot more creative control.<p>Another big differentiator is multimodality. Genie 3 only outputs pixels. Atlas also outputs pixels, but it can also output explicit 3D for the cases where you need it (such as plugging into game engines, simulators, or VFX workflows)</p>
]]></description><pubDate>Wed, 02 Sep 2026 01:04:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49530463</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49530463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49530463</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>Yes, as long as the input images are "poseable" -- if they were taken in the same space they need to have some overlap, where the same object or part of the scene is visible in multiple views so the pose can be predicted.<p>You can also manually position the input images in 3D space to create scenes generatively; we show examples of this in the "generating with spatial context" section</p>
]]></description><pubDate>Tue, 01 Sep 2026 22:01:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528839</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528839</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>It can operate in different modes for different applications.<p>If you only want to reconstruct the content in the input images without any imagination, Atlas can do sparse 3D reconstruction where it predicts a depth map for each input pixel, without predicting anything occluded or not visible in the input views. This could be used to implement your "fog of war" view.<p>But sometimes you want the model to stitch together views and imagine a coherent completion; this is a powerful tool for building and authoring generative worlds. For example the 1 minute video we show in the post was built by positioning seven unrelated input images in space and prompting the model to interpolate between them along a hand-specified camera path.</p>
]]></description><pubDate>Tue, 01 Sep 2026 21:47:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528706</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528706</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>Yes, one of the main goals of this model was to keep 3D consistency as the camera moves around; it can do this even without relying on an explicit 3D point cloud or Gaussian splat representation of the scene.</p>
]]></description><pubDate>Tue, 01 Sep 2026 21:44:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528675</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528675</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>Small correction, World Labs isn't betting exclusively on explicit 3D -- many of the Atlas results in this post are generated frames without any explicit underlying 3D representation. But Atlas can (optionally) output explicit 3D for the cases where you know you want it.</p>
]]></description><pubDate>Tue, 01 Sep 2026 21:38:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528594</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528594</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>It's an overloaded term that different people use for different things. At World Labs we think about three major categories of world models:<p>- Renderers output pixels or views of a world, either the real world or a generated world<p>- Simulators predict how the world responds to actions<p>- Planners predict actions for an agent to make to affect some change in the world<p>Under this taxonomy, Atlas is somewhere between renderer and simulator. It predicts high-quality views of a consistent 3D world (renderer) but it can also predict explicit 3D to aid in simulation. Atlas doesn't currently predict actions to directly drive a robot, so it isn't natively a planner; but its simulation abilities can help train another model to be planner.<p>Source: <a href="https://www.worldlabs.ai/blog/taxonomy-of-world-models" rel="nofollow">https://www.worldlabs.ai/blog/taxonomy-of-world-models</a></p>
]]></description><pubDate>Tue, 01 Sep 2026 21:35:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528567</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528567</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>In addition to frozen time, Atlas can handle some scene motion - see for example the candy New York City in the Camera-Controlled Generation section where cars are moving, or some subtle motion of the waves toward the end of the 1-minute video example.<p>But this is certainly one area we plan to improve going forward.</p>
]]></description><pubDate>Tue, 01 Sep 2026 21:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528493</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528493</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528493</guid></item><item><title><![CDATA[New comment by jcjohns in "Atlas: A World Model for Spatial Intelligence"]]></title><description><![CDATA[
<p>I'm a cofounder at World Labs - happy to answer questions about Atlas!</p>
]]></description><pubDate>Tue, 01 Sep 2026 21:22:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528424</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=49528424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528424</guid></item><item><title><![CDATA[New comment by jcjohns in "RTFM: A Real-Time Frame Model"]]></title><description><![CDATA[
<p>Make sure to try the live demo here:<p><a href="https://rtfm.worldlabs.ai/" rel="nofollow">https://rtfm.worldlabs.ai/</a></p>
]]></description><pubDate>Thu, 16 Oct 2025 17:24:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45608113</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=45608113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45608113</guid></item><item><title><![CDATA[New comment by jcjohns in "World Labs: Generate 3D worlds from a single image"]]></title><description><![CDATA[
<p>Arrow keys also work now, thanks for the feedback!</p>
]]></description><pubDate>Mon, 02 Dec 2024 21:04:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42300358</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=42300358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42300358</guid></item><item><title><![CDATA[New comment by jcjohns in "World Labs: Generate 3D worlds from a single image"]]></title><description><![CDATA[
<p>That's weird, what device are you using?<p>(I'm part of World Labs)</p>
]]></description><pubDate>Mon, 02 Dec 2024 18:17:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=42298766</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=42298766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42298766</guid></item><item><title><![CDATA[New comment by jcjohns in "Korbut Flip"]]></title><description><![CDATA[
<p>The usual narrative around this skill is that it was banned because it was too dangerous, but that doesn't ring true to me -- many release moves performed both by women on the uneven bars and men on the high bar have similar motions whose risk is surely equal to or greater than a Korbut flip.<p>For example, here's a Korbut flip: it's a back flip from the feet to catch the bar: <a href="https://youtu.be/NZYPcdj_wn4?t=15" rel="nofollow noreferrer">https://youtu.be/NZYPcdj_wn4?t=15</a><p>Compare this with a Mo Salto, one of the hardest (legal!) release moves in the women's code of points: <a href="https://youtu.be/eIwTquLwGpA?t=26" rel="nofollow noreferrer">https://youtu.be/eIwTquLwGpA?t=26</a><p>On the men's side, the Korbut flip is a pretty similar motion to a Kovacs (<a href="https://www.youtube.com/shorts/6yRJaivL1TE">https://www.youtube.com/shorts/6yRJaivL1TE</a>) which is a staple of high-level men's gymnastics; in fact the basic Kovacs is "so easy" that you rarely see the vanilla version performed by top athletes! It's more common to do them with a full twist (Coleman/Cassina, e.g. <a href="https://youtu.be/8IeBXhijY0M?t=40" rel="nofollow noreferrer">https://youtu.be/8IeBXhijY0M?t=40</a>) or in combination with other release moves (e.g. Zonderland at the 2012 Olympics <a href="https://youtu.be/I0TM2sOnvyI?t=1160" rel="nofollow noreferrer">https://youtu.be/I0TM2sOnvyI?t=1160</a>). Hidetaka Miyachi is one of the few people to ever have competed a double-twisting Kovacs (both tucked and straight! <a href="https://youtu.be/RgW36EKyKyg?t=23" rel="nofollow noreferrer">https://youtu.be/RgW36EKyKyg?t=23</a>), and there are a few videos online of people practicing a "double Kovacs" with an extra flip (e.g. <a href="https://www.youtube.com/shorts/zI8VEll7wKI">https://www.youtube.com/shorts/zI8VEll7wKI</a>) but nobody has ever done one in competition.<p>While it's perceived danger might have been a factor in the initial ban of the Korbut flip, in light of these modern release moves it's hard to see how that is still a good reason. Instead, I think the reason it remains banned is more aesthetic; bars are supposed to be a swinging event, and we don't want to allow skills that have athletes standing on the bar instead of swinging around it.<p>On the other hand, banning the Thomas salto (<a href="https://www.youtube.com/watch?v=vkQRWCsKyj0">https://www.youtube.com/watch?v=vkQRWCsKyj0</a>) and other similar roll-out moves on floor is very clearly motivated by safety -- these are indeed very dangerous, and athletes have been seriously injured by them (most famously Elena Mukhina who became a quadriplegic as a result of this skill).</p>
]]></description><pubDate>Mon, 07 Aug 2023 22:51:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=37042028</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=37042028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37042028</guid></item><item><title><![CDATA[New comment by jcjohns in "Faster neural networks straight from JPEG (2018)"]]></title><description><![CDATA[
<p>This makes sense in theory, but is hard to get working in practice.<p>We tried using nvjpeg to do JPEG decoding on GPU as a additional baseline, but using it as a drop-in replacement to a standard training pipeline gives huge slowdowns for a few reasons:<p>(1) Batching: nvjpeg isn't batched; you need to decode one at a time in a loop. This is slow but could in principle be improved with a better GPU decoder.<p>(2) Concurrent data loading / model execution: In a standard training pipeline, the CPU is loading and augmenting data on CPU for the next batch in parallel with the model running forward / backward on the current batch. Using the GPU for decoding blocks it from running the model concurrently. If you were careful I think you could probably find a way to interleave JPEG decoding and model execution on the GPU, but it's not straightforward. Just naively swapping out to use nvjpeg in a standard PyTorch training pipeline gives very bad performance.<p>(3) Data augmentation: If you do DCT -> RGB decoding on the GPU, then you have to think about how and where to do data augmentation. You can augment in DCT either on CPU or on GPU; however DCT augmentation tends to be more expensive than RGB augmentation (especially for resize operations), so if you are already going through the trouble of decoding to RGB then it's probably much cheaper to augment in RGB. If you augment in RGB on GPU, then you are blocking parallel model execution for both JPEG decoding and augmentation, and problem (2) gets even worse. If you do RGB augmentation on CPU, you end up with and extra GPU -> CPU -> GPU round trip on every model iteration which again reduces performance.</p>
]]></description><pubDate>Thu, 13 Jul 2023 19:58:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=36715116</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=36715116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36715116</guid></item><item><title><![CDATA[New comment by jcjohns in "Faster neural networks straight from JPEG (2018)"]]></title><description><![CDATA[
<p>I'm one of the authors of this CVPR paper -- cool to see our work mentioned on HN!<p>The Uber paper from 2018 is one that has been floating around in the back of my head for a while. Decoding DCT to RGB is essentially an 8x8 stride 8 convolution -- it seems wasteful to perform this operation on CPU for data loading, then immediately pass the resulting decoded RGB into convolution layers that probably learn similar filters as those used during DCT decoding anyway.<p>Compared to the earlier Uber paper, our CVPR paper makes two big advances:<p>(1) Cleaner architecture: The Uber paper uses a CNN, while we use a ViT. It's kind of awkward to modify an existing CNN architecture to accept DCT instead of RGB since the grayscale data is 8x lower resolution than RGB, and the color information is 16x lower than RGB. With a CNN, you need to add extra layers to deal with the downsampled input, and use some kind of fusion mechanism to fuse the luma/chroma data of different resolution. With a ViT it's very straightforward to accept DCT input; you only need to change the patch embedding layer, and the body of the network is unchanged.<p>(2) Data augmentation: The original Uber paper only showed speedup during inference. During training they need to perform data augmentation, so convert DCT to RGB, augment in RGB, then convert back to DCT to feed the augmented data to the model. This means that their approach will be <i>slower</i> during training vs an RGB model. In our paper we show to to perform all standard image augmentations directly in DCT, so we can get speedups during both training and inference.<p>Happy to answer any questions about the project!</p>
]]></description><pubDate>Thu, 13 Jul 2023 18:51:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=36714231</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=36714231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36714231</guid></item><item><title><![CDATA[New comment by jcjohns in "Open-Sourcing Bit: Exploring Large-Scale Pre-Training for Computer Vision"]]></title><description><![CDATA[
<p>I don't think Google has ever released models trained on JFT. But if you're interested in large-scale vision models, you can check out these models from Facebook trained on 940M Instagram images (several times bigger than JFT!)<p><a href="https://github.com/facebookresearch/WSL-Images" rel="nofollow">https://github.com/facebookresearch/WSL-Images</a></p>
]]></description><pubDate>Fri, 22 May 2020 05:14:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=23268852</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=23268852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23268852</guid></item><item><title><![CDATA[New comment by jcjohns in "Supercharging Style Transfer"]]></title><description><![CDATA[
<p>Yes, I think that is a likely explanation. Also note that Vincent Dumoulin is an author of both the deconv-checkerboard blog post and the new paper from Google, and that the new Google paper uses the upsample+convolution technique suggested by the deconv-checkerboard blog post.</p>
]]></description><pubDate>Wed, 26 Oct 2016 22:18:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=12801203</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=12801203</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12801203</guid></item><item><title><![CDATA[New comment by jcjohns in "Supercharging Style Transfer"]]></title><description><![CDATA[
<p>I've found that instance normalization usually gives better results so I prefer it over batch normalization.<p>With batch norm you learn four scalars per convolutional feature map: mu (mean), sigma (stddev), alpha (scale) and beta (shift). During training, mu and sigma are estimated from data statistics; during testing they are constants, either estimated from the entire training set or computed as a running mean during training. At test time the batch norm operation is then alpha * (x - mu) / sigma + beta, which is a linear operation since everything but x is constant; since it is linear it can be merged into a convolutional layer.<p>With instance norm, mu and sigma are estimated from data statistics during both training and testing; this means that the test-time forward pass is nonlinear, so it cannot be merged into a convolution (which is linear).</p>
]]></description><pubDate>Wed, 26 Oct 2016 20:25:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=12800129</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=12800129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12800129</guid></item><item><title><![CDATA[New comment by jcjohns in "Supercharging Style Transfer"]]></title><description><![CDATA[
<p>Real-time neural style transfer is not new; in the past year there have been several academic papers [1-4] on this topic and several open-source code releases:<p><a href="https://github.com/jcjohnson/fast-neural-style" rel="nofollow">https://github.com/jcjohnson/fast-neural-style</a><p><a href="https://github.com/DmitryUlyanov/texture_nets" rel="nofollow">https://github.com/DmitryUlyanov/texture_nets</a><p><a href="https://github.com/chuanli11/MGANs" rel="nofollow">https://github.com/chuanli11/MGANs</a><p>Neural style blending is also not new; I did it more than a year ago using optimization-based method:<p><a href="https://github.com/jcjohnson/neural-style#multiple-style-images" rel="nofollow">https://github.com/jcjohnson/neural-style#multiple-style-ima...</a><p>The novelty of this work is a clever way for training a single network that can apply many different styles; existing methods for real-time style transfer train separate networks per style. Their method also allows for real-time style blending, which is very cool and to my knowledge has not been done before.<p>(Disclaimer: I'm the author of [2])<p>[1] Ulyanov et al, "Texture Networks: Feed-forward Synthesis of Textures and Stylized Images", ICML 2016<p>[2] Johnson et al, "Perceptual Losses for Real-Time Style Transfer and Super-Resolution", ECCV 2016<p>[3] Li and Wand, "Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks", ECCV 2016<p>[4] Ulyanov et al, "Instance Normalization: The Missing Ingredient for Fast Stylization", arXiv 2016</p>
]]></description><pubDate>Wed, 26 Oct 2016 18:30:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=12799113</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=12799113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12799113</guid></item><item><title><![CDATA[New comment by jcjohns in "Fast Neural Style Transfer"]]></title><description><![CDATA[
<p>Author here. I'm not a lawyer so I can't write anything too official myself, and after some searching it seemed like none of the standard open-source licenses apply to this use-case.</p>
]]></description><pubDate>Thu, 06 Oct 2016 16:07:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=12653607</link><dc:creator>jcjohns</dc:creator><comments>https://news.ycombinator.com/item?id=12653607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12653607</guid></item></channel></rss>