Being

For a moment, the cold air hit his skin and he felt a terrifying lightness, as if he might float away. But then, he heard a bird chirp. He felt the rough texture of the bench. He smelled the rain-slicked earth. He wasn't the Architect or the Scholar anymore. He was simply there . "It's quiet," Elias whispered. "No," the woman smiled. "It's finally real.".

Elias was a master weaver. His story-cloak was a shimmering tapestry of academic honors, a heart-wrenching lost love, and a promising career as an architect. People admired the weight of his cloak; it was so thick it nearly brushed the cobblestones. But Elias was exhausted. The cloak was hot, it restricted his breathing, and he found himself constantly checking the threads for frays. For a moment, the cold air hit his

Elias looked at his own cloak. He saw the "Conflict" threads he had carefully dyed to show his resilience. He saw the "Climax" gold-work from his graduation. He realized he was so busy being a "character" that he had forgotten he was a living being. He smelled the rain-slicked earth

This story explores the concept of "being" through a protagonist who discovers that existence is not about the stories we tell ourselves, but about the simple act of presence. The Weaver of Echoes "It's quiet," Elias whispered

"I let it go," she said, her eyes fixed on the way sunlight dappled through the oak leaves. "I realized I spent so much time weaving the past and plotting the future that I forgot how to simply be .".

One Tuesday, while obsessing over a loose thread representing a minor social slight from three years ago, Elias met an old woman sitting on a park bench. She wore no cloak at all—just a simple, plain linen tunic.

"But who are you without your story?" Elias pressed. "If you aren't the Weaver of Echoes, or the Architect of the Plaza, what is left?"

Command line utility

A cross-platform console application that can export and decompile Source 2 resources similar to the main application.

ValveResourceFormat

.NET library that powers Source 2 Viewer (S2V), also known as VRF. This library can be used to open and extract Source 2 resource files programmatically.

ValveResourceFormat.Renderer

.NET library providing an OpenGL-based rendering engine for Source 2 assets. Standalone rendering of models, maps, particles, animations, lighting, and materials with physically-based rendering (PBR).

ValvePak

.NET library to read Valve Pak (VPK) archives. VPK files are uncompressed archives used to package game content. This library allows you to read and extract files out of these paks.

ValveKeyValue

.NET library to read and write files in Valve key value format. This library aims to be fully compatible with Valve's various implementations of KeyValues format parsing.

C#
// Open package and read a file
using var package = new Package();
package.Read("pak01_dir.vpk");

var packageEntry = package.FindEntry("textures/debug.vtex_c");
package.ReadEntry(packageEntry, out var rawFile);

// Read file as a resource
using var ms = new MemoryStream(rawFile);
using var resource = new Resource();
resource.Read(ms);

Debug.Assert(resource.ResourceType == ResourceType.Texture);

// Get a png from the texture
var texture = (Texture)resource.DataBlock;
using var bitmap = texture.GenerateBitmap();
var png = TextureExtract.ToPngImage(bitmap);

File.WriteAllBytes("image.png", png);
View API documentation
Screenshot of the 3D renderer displaying a Counter-Strike 2 player model on a grid Screenshot showing the VPK package explorer interface with a file tree and a list view Screenshot of the animation graph viewer showing nodes Screenshot of the command line interface showing DATA block for an audio file

For a moment, the cold air hit his skin and he felt a terrifying lightness, as if he might float away. But then, he heard a bird chirp. He felt the rough texture of the bench. He smelled the rain-slicked earth. He wasn't the Architect or the Scholar anymore. He was simply there . "It's quiet," Elias whispered. "No," the woman smiled. "It's finally real.".

Elias was a master weaver. His story-cloak was a shimmering tapestry of academic honors, a heart-wrenching lost love, and a promising career as an architect. People admired the weight of his cloak; it was so thick it nearly brushed the cobblestones. But Elias was exhausted. The cloak was hot, it restricted his breathing, and he found himself constantly checking the threads for frays.

Elias looked at his own cloak. He saw the "Conflict" threads he had carefully dyed to show his resilience. He saw the "Climax" gold-work from his graduation. He realized he was so busy being a "character" that he had forgotten he was a living being.

This story explores the concept of "being" through a protagonist who discovers that existence is not about the stories we tell ourselves, but about the simple act of presence. The Weaver of Echoes

"I let it go," she said, her eyes fixed on the way sunlight dappled through the oak leaves. "I realized I spent so much time weaving the past and plotting the future that I forgot how to simply be .".

One Tuesday, while obsessing over a loose thread representing a minor social slight from three years ago, Elias met an old woman sitting on a park bench. She wore no cloak at all—just a simple, plain linen tunic.

"But who are you without your story?" Elias pressed. "If you aren't the Weaver of Echoes, or the Architect of the Plaza, what is left?"

Changelog

Made possible by amazing people

Source 2 Viewer is open-source and built by volunteers. Every contribution helps make it better for everyone.