Загрузка видео...

Не удалось загрузить видео

На главную

I built a Three.js rendering study inspired by Tiny Glade’s painterly aesthetic, and got it running at 120fps in the browser. Over the past few weeks, I’ve been studying how stylized games achieve that soft, handcrafted look in real time. Tiny Glade was a huge inspiration, and I wanted...

58,625 просмотров • 5 месяцев назад •via X (Twitter)

Комментарии: 0

Нет доступных комментариев

Здесь появятся комментарии из оригинального поста

Похожие видео

There's been a few cool updates recently. In particular, Rerun 0.33 released headless rendering. This, along with the Fable 5 release pushed me to work torwards making MAMMA realtime! I threw Fable at the problem, and it was able to take original implementation that was ~12 seconds / frame and get it all the way down to 40ms /frame, or nearly a 300x speedup 🏎️ How did I achieve this? TLDR: - Use rerun's headless rendering as supervision when optimizing - Save rrd file as test fixture to guide model optiziation with /goal - create an html artifact with headless rendering to provide detailed breakdown of what it did and how it actually looks like in the viewer There were a few critical bits to make sure that this ACTUALLY worked and that Fable didn't just cheat or delete something and declare victory. The first is that the original version used Rerun, this allowed us to save things to disk as an RRD file, meaning we could query the contents and use this as a sort of test fixture or golden artifact that held EXACTLY what all of the values should be. Then we can use this with /goal as a metric when doing the optimization to ensure there are no regressions. The second bit is the headless rendering, this gave us the ability to check that not only did the test fixture pass, but it also looked visually correct. This made a huge difference, and an awesome side affect of it is that we can use the headless rendering to create an implementations.html file. This gives a visual guide as to what the agent did (I walk through it in the video below) Along with this, we're working on an MCP server for rerun that allows full interactivity with the rerun viewer for your agent. So for example the agent can click, drag, move views, scroll timelines, ect. I used this to help the agent debug certain parts such as when the 2d sam masks didn't line up, or if the triangulated keypoints werent correctly matching with the optimized mesh. The agents could go, click into the view, scroll through the timeline and see where things went wrong. Fable + Headless Rendering + Rerun MCP == 300x speedup in less then a days work With these new tools, I'm planning on going back to my gaussian splatting implemntation and cleaning it up + making it fast!

Pablo Vela

22,880 просмотров • 2 месяцев назад

A really impressive set of Three.js graphics experiments just got open sourced, and these are much more than little visual demos. They are basically reusable procedural systems for oceans, vegetation, fluids and even whole planets. 🔹 Poseidon A real-time FFT ocean running on WebGPU. It simulates large swells, smaller ripples, foam, reflections, choppy displacement and physically inspired wave spectra entirely in the browser. 🔹 Gaia A procedural grass generator where every blade, seed head and field comes from a deterministic genome and environmental parameters. No authored grass models. 🔹 Dryad A procedural flora system that generates trees and other plant forms from physics, environmental conditions and a seed. No authored 3D models or textures are needed for the plants themselves. 🔹 Tiamat A real-time GPU fluid simulation using around 100,000 SPH particles, with the resulting water rendered directly in the browser. 🔹 Demiurge Probably the craziest one. It procedurally builds an entire planet from tectonic plates, then lets uplift drive erosion, erosion and latitude drive climate, and climate drive biomes, wind and weather. You can move seamlessly from orbit down to the surface. What I really like here is that these are not just pretty outputs. They are actual building blocks. Ocean simulation, vegetation generation, fluid dynamics and procedural worlds are exactly the kinds of systems that can be plugged into games, simulations and agent-built 3D environments. Project by: Owen

Token Gremlin

33,639 просмотров • 26 дней назад

New Tools for a New Era. Coding agents like Claude and Cursor have dramatically reduced the time it takes to go from idea to functional software. But the experience of designing and refining with them sucks. One reason for this is that while the terminal is an incredible tool for communicating direction with language, it is a terrible tool for defining and exploring visual and interactive objects. Here is one idea for how we might fix a small part of that. In the old world, when you wanted to create a transition or animation in your app, you would type some code, refresh your local server, and click to run your animation. It probably wasn't right, because after all no one can know what 'cubic-bezier(0.3, 0.05, 0.45, 1)' really feels like when you read it. You need to see it. Feel it. Interact with it in a real world context. So you'd edit some values, save, refresh, and keep guessing and checking until it felt right. Today, you can write a quick, single-use tool that's a visual studio for designing animations. You can then configure some components and containers common in all apps, and explore different animations in real time, adjusting key properties, and getting it just right. Then, you can copy a highly detailed prompt (or export a skill containing all your animations) that captures your intent and direction with perfect clarity. Paste this into your terminal and your agent instantly implements it everywhere. To me, this is an improvement over the old world, and a better way to work in today's. I'm extremely excited to see the ways in which our ability to rapidly create software will shape how we design software tomorrow. Feedback, ideas, and critiques welcome!

joshpuckett

82,659 просмотров • 8 месяцев назад

WOW. 😳 Apple just quietly won the 3D maps war at WWDC. Gaussian Splatting is coming to Apple Maps Flyover this fall. Apple Maps Flyover covers 300+ cities. Until yesterday, every single one was built on standard drone photogrammetry. The technology captures photos from the air and reconstructs 3D geometry from them. Gaussian Splatting does not reconstruct geometry. It represents the scene as millions of tiny 3D ellipsoids, each one carrying its own color and opacity information based on how light actually behaves in that location. The output is not a mesh model. It is a field of light. When you move through it, it does not crumble at the edges. The detail holds because it was never geometry to begin with. Apple has been hiring for this for years. Their SHARP model, published in research last year, generates photorealistic 3D scenes from a single image in under a second. Google has more sensor data than anyone. More Street View cars, more satellites, more capture history. On navigation accuracy and geodata depth, Google Maps is still ahead by most measures. But fidelity in 3D city rendering is a different competition, and Apple just set a bar in that. Most people will experience this in the fall without knowing the name of the technology. They will open Flyover, look at a city they know, and notice it looks different. Real, not rendered. That is the moment Gaussian Splatting stops being a research term and becomes something a billion people use. Bookmark this. It will look prescient by October.

Shruti

19,832 просмотров • 3 месяцев назад

3D scanning and rendering is moving so fast - got my splats up and running and I'm mind blown getting ~100fps for this complex 3D scene ⬇️ 🤯 1. WAY faster than NeRF: For comparison, NeRFs would takes around 10 seconds per frame (!) Instead I'm zipping around with FPV controls without breaking a sweat - though I do crash a few times towards the end of the video lol 2. Old Meets New: Gaussian Splatting is cool in that it fuses classical graphics and deep learning techniques. Like NeRFs, this is still a radiance field - just without the slower (ne)ural rendering part. 3. Explicit Representation: Instead you represent a 3D scene as a collection of ellipsoidal "splats" called gaussians. Each gaussian has a position, size, and color. Rendering in real-time is done by projecting into the image plane and alpha blending. 4. Photorealistic Effects: Gaussian splatting use spherical harmonics to represent the view-dependent effects and lighting - allowing surfaces to change color when viewed from different angles, enabling greater photorealism. It doesn't use a neural network, but the training loop is similar to deep learning. 5. Enables Direct Editing: But it's not just speed - with Gaussian Splatting you also get 3D editing support! So you can select, move, and delete stuff, even relight stuff. This type of editing has been more tedious to do with NeRFs and their implicit black box representations. 📲 More tests cooking! Much more to unpack here including simpler explanations. If you enjoyed this post, you might enjoy my feed: Bilawal Sidhu

Bilawal Sidhu

337,090 просмотров • 3 лет назад

When I saw the mask "Tribes of the Calf" from Kanbas I knew I had to make it into reality. The jewelry and gold really made it stand out for me. Since Sam Spratt's The Masquerade was revealed, I have been spending time sculpting and dissecting the mask to recreate it in 3D as faithfully as possible. I delved into the creation of this mask for many reasons. I love a good challenge and this mask surely was one for me. Creating something in 3D from a 2D image is not easy, and especially when the source has generative nature, some stuff is hard to interpret, but I tried my best to make sure the visual integrity of the mask is as close to the original as possible. Splitting the whole mask into parts, filling the missing pieces so I can build the textures was quite a lot of work. I tried to present the mask in my own style with a slightly different colorway to adapt to the mask itself. Please enjoy this short animation, and turn on sound🔊 This piece is my statement that I am here to stay. That I have a voice that often feels being lost in the void. That I have been creating and posting digital art for over 20 years now and will continue until I'm gone. I have a story to tell and I want to be heard. The space we have here is small, and is shrinking day by day. It doesn't have to be like that. We need to support each other and push ourselves and people here, otherwise we are all doomed. As Kanbas has put in their observation of the mask: "Inspirational. Emotional. Natural." This is what our space can be, and this is me making a statement with this homage. I will share a 4k still below as well as a short video showing the 3D GLB interactive model together with a yt link to the 4k video since compression here is pretty bad.

shoneec

17,894 просмотров • 1 год назад

Stratosphere was our biggest and heaviest character on #Transformers ROTB. He was a real challenge to deal with on the Modeling, Texturing, and Rendering side. He had 1434 UDIMs due to his immense scale and was made up of tens of thousands of objects. His level of detail was truly something else. His vehicle form was also a behemoth. We had also built a mortar for his robot form and a cannon for his vehicle form but neither of these made it into the film as his part in the final battle was cut out. He was originally supposed to help out in the final battle, using both of these weapons against the Sweepers and Predacons. The decision to cut him from the final act came very late as all of his assets were final at that point. We were never told the reason why his role was cut from the film. I had to re-design my texturing system in Mari when working on him to ensure that it could handle such a complex and large character. I had to simplify a lot of the procedural systems and even had to branch off some of them into their own files to ensure that artists could work with somewhat decent performance. We ran into a lot of issues pushing him through our pipeline, both as a model as well as rendering him due to the sheer amount of objects and textures that had to be processed. For shots, it was requested by Lighting that we reduce his memory footprint as Google had complained he was taking up too much memory and their I/O for rendering on the cloud was being affected. The leadership team and I decided that the best way to do this was to half the texel density on the parts that wouldn't be visible in our approved shots and to also half the resolution of the textures in the parts not visible to camera. This allowed us to optimize his memory footprint both in shots as well as storage and I/O. It was massive technical undertaking working on Stratosphere, so much so that we had to delay getting him into shots as we simply couldn't push him through with our normal tooling. I really enjoyed the challenge that he posed for us as a team. CREDITS: Primary Modeling by Oscar Lowe Support Modeling by Arthur Grandjean and his team Final Texturing & Lookdev by Yaz Raji Video credits: Breakdown shot by MPC Film footage by Paramount

Rassoul Edji

268,448 просмотров • 1 год назад

2026 = The end of upscaling? One of generative AI's biggest drawbacks was the resolution, and I'm not talking about the output resolution as 1080p would be enough for most of the projects. I'm talking about the "internal" resolution of how these models work, that makes small faces distorted in your generations, the ones that will make a wide-shot impossible because the small details will morph and of course with some models text rendering is not possible. Upscaling with AI was always a strange case, local upscalers sometimes lacked the quality compared to the closed source competitors, but those can be pretty pricey and the results are sometimes way too "creative". So I was very, very interested when Kling AI announced native, not upscaled 4K generation but wanted to have a good method test it. Again, I never missed the 4K output resolution with genAI, but I missed the nuanced detail rendering of the engines and the lack of that made it impossible to create for example very wide shots with tiny details. So I fired up some image models to generate stills inspired by Morocco and see how Kling behaves, now in 4K. Some notable moments: 00:22 - Skin and eye texture, the movements, the little coins in the headdress 01:18 - The reflection in the water 01:39 - The reflection in the eye, and the scarf textures 02:10 - Check all the details on the rails 02:20 - Water particles and leaves 02:29 - The rendering of the rusty parts of the rail 02:50 - How the waves change the reflection in the foreground 02:55 - The cloud movement in the background

László Gaál

17,514 просмотров • 3 месяцев назад

My first test with the new Gemini Deep Think 3 🔥🔥🔥 Build a complete Three.js scene in a single HTML file that renders a fully 3D interior room indistinguishable from a classical oil painting hanging in a museum. The Painterly Rendering System Write custom GLSL shaders that replace all standard rendering with oil paint simulation. Every pixel must feel painted by hand. The system needs these layers working together. Brushstroke normals. Generate a procedural brushstroke normal map using layered directional noise at varying scales. Large bold strokes for walls and floors following the plane direction. Small delicate strokes for fine details like metal and glass. Circular strokes for rounded objects. The brushstrokes must catch sidelight and cast tiny shadows into their grooves exactly like real impasto paint on canvas. Paint thickness. Use parallax occlusion mapping to give highlights genuine physical thickness. Where the original painter would load their brush with white or yellow to hit a bright highlight, the paint should visibly sit above the surface. In dark shadow areas, the paint should appear thinner, letting canvas weave show through slightly. Color palette. Restrict the entire scene to a historical oil palette. Titanium white, naples yellow, yellow ochre, raw sienna, burnt sienna, burnt umber, raw umber, ivory black, vermillion used sparingly, and a muted blue-grey. No modern saturated colors. All color mixing should feel subtractive and warm. Edge treatment. No hard edges anywhere in the scene. Object silhouettes must soften and blur slightly as if the painter's brush feathered where one form meets another. Implement this as a screen-space edge-detection pass that blurs based on depth discontinuity and overlays brushstroke texture at boundaries. Canvas texture. The entire final image must have a linen canvas weave overlay rendered with its own normal map that interacts with the scene lighting. As you orbit, the canvas tooth should glint differently. This sells the illusion more than anything else. Varnish layer. Apply a post-processing pass that simulates aged oil varnish. A warm amber tint that is slightly uneven, thicker in corners and thinner in center. A subtle gloss reflection that shifts as you move the camera. Very fine craquelure, hairline crack patterns, visible only when you zoom in close. The Scene. A Dutch Golden Age Study. Model everything procedurally with no external assets. A small intimate room with rough plastered walls in thick paint, warm grey-ochre. A single tall window on the left wall. Leaded glass with thick mullions letting in one dominant shaft of warm light. The window glass should have slight imperfections like bubbles and waviness visible in the paint treatment. A heavy dark wood table positioned center-left. On the table place a brass candlestick with a half-melted candle where the wax drips are modeled and painted with naples yellow impasto highlights. A pewter plate with a half-peeled lemon, the peel curling off the edge of the plate, the exposed fruit flesh a jewel of thick yellow paint catching light. A partially unfolded letter with a broken red wax seal. A small glass of dark wine catching a single highlight. A dark velvet cloth draped from the table edge falling in heavy folds to the floor. The velvet should have that characteristic oil painting treatment where shadows go almost black and the fabric catches light in soft broken highlights. The floor is wide dark wooden planks painted with long horizontal brushstrokes. Against the back wall, barely visible in shadow, a tall wooden cabinet with a few old leather-bound books leaning against each other. A single beam of light from the window cuts diagonally across the scene illuminating floating dust motes painted as soft tiny dots of naples yellow, not CG particles. The rest of the room falls into rich warm shadow. Lighting One dominant directional light from the left simulating window light. Warm, strong, with soft VSM shadows. A very subtle fill from the right in cool blue-grey at perhaps 5% intensity. No ambient light. The shadows should be genuinely dark and warm. This is Vermeer lighting. The contrast between the luminous light-struck areas and the deep velvety shadows is what makes the painting breathe. Post-Processing Chain Render pass. Painterly edge softening pass. Canvas texture overlay pass. Varnish and aging pass. Heavy vignette like a dark gallery frame encroaching. Very subtle bloom only on the brightest impasto highlights. Film grain that mimics canvas tooth texture rather than photographic noise. Interaction OrbitControls with very slow damping at 0.02 and limited orbit range so you can look around the painting but not flip it upside down. Slow zoom. The feeling should be like leaning closer to a painting in a museum and discovering more detail. The Standard When someone opens this file and takes a screenshot, people should genuinely argue whether it is a photograph of a real oil painting or a digital render.

Emily

20,940 просмотров • 6 месяцев назад

** Sega Genesis 3D engine update 8.5 ** A smaller update - Scrolling left or right of the sprite based background is implemented along with X camera shifting of the 3d plane. The Exodus emulator has been used with sprite boxing enabled so you can see the background sprites making up the object ( their outlines ) and how they move to tilt the image . The background is made up of 112 sprites (51 are multiplexed in that number as the Genesis is limited to 80 without mulitplexing eg basically re-using sprite hardware as the screen is being drawn ) . In a 6 x 17 sprite grid of 16x32 pixel high sprites. If the tilt affect was not neccessary or only 1/2 the angle of tilt effect was needed, I could get away with 1/2 the number of sprites and just used 32x32 sprites instead. I think the tilt effect adds a bit to movement however. This is very similar to how a Neo Geo would build its backgrounds up - in 16 pixel strips however its sprites are tall as the screen or more but the concept of making backgrounds up in 16 pixel wide strips is similar. The NG uses sprites to build any background layers required. Here on the Genesis the reason is rendering is much faster using both the 3d planes and using a total sprite background for this engine. Initially i had a lot of things breaking when I tried to move the camera in the X dimension much , as i'd optimised the vertex transform path heavily and once beyond a certain camera offset the X value was wrapping around causing a lot of breakage in the rendering. Thankfully solved that issue without marginal impact to cpu . It still needs work , perspectives are a bit wrong etc but it won't be hard to fix. Also found some rendering speeds ups, about 8% by optimising fully onscreen quads and optimising the clearing of the frame buffers more efficiently. Toni Gálvez - Megastyle - BG. has been hard at work on HUD elements and more 3d models so will have something to show for that soon. #SGDK #SegaMegadrive #SegaGenesis

Shannon Birt

21,350 просмотров • 1 месяц назад

Destiny 2 left a permanent mark on my life. The memories I’ve made with this game, both as a player and as someone lucky enough to work on it, will forever stay with me. Not just because of late nights running King’s Fall with friends, or grinding out the Crucible Glorious Seal in solo queue like a complete maniac, but because Destiny 2 challenged me, shaped me, and pushed me toward becoming the creative I am today. My journey into digital art and photography started back in 2007, when I began taking screenshots in Halo 3 and entering Bungie community art contests. The relationships I built during that time eventually opened the door to an opportunity with Bungie’s Gameplay Capture team in 2014, helping the team capture footage for a new game called Destiny. I had no idea then that a commendably short two-week contract would turn into an incredible 12-year journey with this franchise. I originally came to Bungie hoping to pursue environmental concept art, but along the way I had the opportunity to work on marketing art and quickly fell in love with it. Creating marketing art for a franchise like Destiny challenged me in so many different ways. It forced me to expand my technical, creative, and communication skill sets, constantly adapt, and keep learning new tools and workflows just to keep pace with the live-service beast that was Destiny 2. It means a lot to be able to look back and say with confidence that I had a visual impact on Destiny 2; but the most meaningful part of it all was getting to work alongside and learn from so many incredible artists at Bungie, and seeing firsthand just how much care, effort, and humanity it takes to make work like this possible. It’s hard to fully capture how much energy, skill, and collaboration goes into every visual part of a game like Destiny 2. That work is shaped by artists from different backgrounds, experiences, disciplines, and perspectives. Each of them, including me, left a small part of themselves in what they created. To me, that’s what makes a game like Destiny 2 feel truly meaningful and memorable. Especially now, in a world increasingly saturated with content and driven by instant output and gratification through AI, I keep coming back to the value of process. For me, and for so many of my peers, it was never only about arriving at the final image. It was about the journey it took to get there. The late nights. The iteration. The problem-solving. The trust. The shared pursuit of trying to make something special. To my peers, I’m deeply proud of what we built together, but even more grateful for how we built it. We challenged each other, inspired each other, and kept showing up for one another through every high and low, as Destiny 2 has had many. That kind of shared effort leaves a lasting mark. What we made mattered. What we gave mattered. And the impact of what we built together will stay with us, and this community, for a long time. Shoutout to the current and former members of Creative Studios, the VizD team, and the many Bungie developers and marketers who helped shape this chapter of my life. I’m especially grateful to the teammates who believed in me, encouraged me to embrace failure and new beginnings as essential parts of artistic growth, and pushed me to take on challenges even when they felt beyond my reach. You showed me that the strength of a team will always surpass that of any individual hero. As my work on #Destiny2 comes to a close and I look toward the future, I plan to spend the next few weeks sharing some of the pieces I had the chance to create or art direct that mean the most to me. For now, I’ll leave you all with a collage of some of my personal favorite pieces to work on across Destiny 2’s lifetime. These projects mean so much to me because many of them started as personal passion projects or late-night concept sketches, inspired by playing early builds of Destiny 2 and by the incredible work of our development team.

Biwald

73,277 просмотров • 2 месяцев назад

Edward Yang on the impact of watching Aguirre, the Wrath of God (1972): "I found a job in Seattle at a research laboratory that contracted to do classified defense projects in microcomputers. I was among the first generation of designers and applicators for microcomputers and microprocessors. By the time I turned thirty I was pretty well established, with a team of seven or eight guys working on some very interesting projects. Later on I made the association that designing is like writing, and I realized that this background helped me a lot. After a couple of years as an engineer, of course, the routine bored me. One night, I was driving after work in downtown Seattle, and I saw a billboard outside a movie theater with the words, German New Wave, and the title, Aguirre: The Wrath of God. It made me curious, so I went in. I was fortunate. I came out a different person. That two hours just blew me away. It restored my sense of competence that I could be a filmmaker. This is what I thought a film should be. Film school would never teach you to make those kind of shots. That was one of the crucial moments of my life. I had turned thirty, I thought I was getting old, and three more years passed before I got the chance to work on a film project with a friend who asked me to write a script for him. I went back to Taipei, and also visited Hong Kong for the first time, and the film was shot in Japan. I got an offer to write and direct a made-for-TV movie in Taiwan, so I didn't go back to Seattle." — The Engineer of Modern Perplexity: An Interview with Edward Yang by Robert Sklar, published in Cineaste, Vol. 25, No. 3 in 2000

RadiantFilm

97,385 просмотров • 10 месяцев назад

This is probably the most complex workflow I’ve ever built, only with open-source tools. It took my 4 days. It takes four inputs: author, title, and style; and generates a full visual animated story in one click in ComfyUI . I worked on it for four days. There are still some bugs, but here’s the first preview. Here’s a quick breakdown: - The four inputs are sent to LLMs with precise instructions to generate: first, prompts for images and image modifications; second, prompts for animations; third, prompts for generating music. - All voices are generated from the text and timed precisely, as they determine the length of each animation segment. - The first image and video are generated to serve as the title, but also as the guide for all other images created for the video. - Titles and subtitles are also added automatically in Comfy. - I also developed a lot of custom nodes for minor frame calculations, mostly to match audio and video. - The full system is a large loop that, for each line of text, generates an image and then a video from that image. The loop was the hardest part to build in this workflow, so it can process either a 20-second video or a 2-minute video with the same input. - There are multiple combinations of LLMs that try to understand the text in the best way to provide the best prompts for images and video. - The final video is assembled entirely within ComfyUI. - The music is generated based on the LLM output and matches the exact timing of the full animation. - Done! For reference, this workflow uses a lot of models and only works on an RTX 6000 Pro with plenty of RAM. My goal is not to replace humans, as I’ll try to explain later, this workflow is highly controlled and can be adapted or reworked at any point by real artists! My aim was to create a tool that can animate text in one go, allowing the AI some freedom while keeping a strict flow. I don’t know yet how I’ll share this workflow with people, I still need to polish it properly, but maybe through Patreon. Anyway, I hope you enjoy my research, and let’s always keep pushing further! :)

Lovis Odin

58,841 просмотров • 11 месяцев назад