GPUs for your creations · crypto without KYC Explore
NOTEBOOK 01 · ORGANIZATION

A Blender scene that travels with its resources.

To transfer a Blender scene, gather its dependencies around the project, make the paths portable and check the copy in a location that cannot reach the old sources. A .blend file alone is not proof of a complete folder. Our original Pli pack puts this method into practice with a ceramic bottle, a distributable texture and an independent check outside Blender.

THE KIT TO TAKE WITH YOU · 1.0.0

Pli — portable Blender folder

Original generator for Blender 4.5.x LTS, procedural texture, recipe, license, manifest and acceptance sheet. No .blend or render is provided: they remain to be rebuilt and verified with Blender.

What was verified

  • Validation of files from an extracted ZIP, with access to the original sources denied.
  • Missing texture, altered texture and external path detected; sheet filled in on an accepted copy.
  • Blender, CPU render, GPU render and scene appearance: not run or not checked.
01

The Pli project: a scene recipe with a precise scope

Pli is a fictional bottle designed for this exercise: a purple body with soft edges, a satin orange collar, a chevron label and a clay base. The generator sets up studio lighting and a composition that leaves room on the left. It builds the objects and materials; the only external image is an original 512 × 512 pixel PNG pattern, along with the program that recreates it. No model, HDRI, font or client file is required.

The target is Blender 4.5.x LTS with Cycles. The folder covers a still image, with no simulation or add-on. The generator refuses any other Blender branch so that this choice stays explicit. Python 3.10 or newer is enough to check the files; building the scene requires the Python bundled with Blender.

Pli provides a generator to run with Blender 4.5.x LTS. The files and error cases were checked under Python 3.14.6; creating the scene, opening it and rendering it still need testing in Blender. No .blend file or render is provided.

02

Before copying, decide what the project must reproduce

Start by identifying the deliverable: a still image, an animation or a series of variants. Note the software and its version, the engine, the active camera, the scene, the dimensions and the quality settings. For an animation, add the frame rate and the inclusive bounds. A scene that opens does not necessarily reproduce the same textures, the same caches or the right framing.

Work on a frozen version and keep the originals. Separate the resources you use from abandoned experiments; two textures with almost the same name can explain a difference in material. Also check the transfer rights for models, images and libraries. The Pli pack provides an MIT license for its own scripts, documents, pattern and described geometry; your additions may have other terms.

In Pli, scene.json acts as the starting spec sheet: target version, inventory of the ten objects, graphical dependency, engine, image 1 and output destinations. It also states what does not exist in this project: linked libraries, fonts, caches and animation. A declared absence keeps an empty folder from being mistaken for a forgotten resource.

03

A tree where every file has a role

Keep a versioned root, here blender-v1, and extract the archive before working. The separation below lets you trace an image back to its source, find the editable project and identify the result to deliver. It does not impose a universal convention: above all, choose names that someone picking up the folder understands without your message history.

The distributed sources appear in manifest.sha256.json with their size and hash. The manifest excludes itself to avoid a circular reference. Future .blend files, PNGs and reports are outputs: they will need to go into your own delivery inventory after validation.

Layout of the Pli pack v1.0.0
LocationContentsCheck to remember
01_sourcesOriginal pattern programLets you rebuild the texture without Blender
02_projetDestination of the .blendNo .blend provided before rebuilding
03_ressourcespli-chevron.png, sRGB base colorExternal file kept and intended for embedding
04_cachesScope noteNo simulation for this still image
05_rendusDestination of the imagesNo CPU or GPU render delivered
06_livraisonIntake template and future reportsCopy the template before filling it in
04

Check the extracted ZIP before launching Blender

From the root of the extracted folder, run the validator with an independent Python. It compares thirteen files against the manifest, checks the recipe, the paths and the PNG, then analyzes the syntax of four scripts. The expected result for an intact pack is ok: true and an exit code of 0. This check does not import bpy and does not produce any 3D image.

Our tests start from the ZIP extracted to another location. The verification process only allows reads within that copy and within the directory of the Python used; an attempt to access the original recipe is explicitly denied. Success therefore does not depend on a texture being silently found in the creation folder.

A code of 1 means you must read the list of errors. Do not rewrite the hashes to make a warning disappear. Go back to the intact archive, or create a separate working version if you want to modify the scene. An identical hash proves the file's integrity relative to the manifest, not its visual quality or the identity of its author.

Verification without Blender, from the extracted folder
python validate_pack.py --root . --json
05

Rebuild the flask and request a small CPU render

The following command is the procedure to run on a workstation with Blender 4.5.x LTS; it was not executed during this preparation. Run it in a dedicated process: the script starts from an empty scene. On Windows, if blender is not in the PATH, use the full path to the executable; in PowerShell, precede that quoted path with &.

The generator first checks the pack, creates the objects, loads the texture from the copy, embeds it, and saves 02_projet/renderparcel_pli_v1.blend. The saved file sets up Cycles CPU, 1200 × 750 pixels, 64 samples and frame 1. The --render-preview option then requests a 480 × 300 pixel PNG at 16 samples, without denoising. These numbers are settings, not performance measurements.

The reconstruction.json report is written after the operations succeed and states whether the render was actually executed. To build only the .blend, remove -- --render-preview. The script refuses to overwrite existing outputs: a second attempt is made in a new extraction. The --python-exit-code 1 option lets you detect a script exception via the process exit code.

CPU reconstruction and preview — run with Blender
blender --background --factory-startup --python-exit-code 1 --python generate_scene.py -- --render-preview
06

Relative paths: describing position without forgetting the copy

In Blender, a path starting with // refers to the location of the .blend file. Since the Pli project will be in 02_projet, its texture can be referenced as //../03_ressources/pli-chevron.png. The resources folder travels with it. The generator nonetheless starts with an absolute path resolved in the copy, embeds the image, then writes the relative path before saving.

For an existing project, first save the .blend in the transfer folder. In File → External Data, Make Paths Relative converts the references; this operation does not copy the resources. Report Missing Files helps identify broken links. Find Missing Files searches for files in the selected folder and can repair references as absolute paths: check them again before transferring.

Do not confuse “found on this machine” with “present in the folder.” A texture still accessible in Downloads can hide the oversight. After copying, open the project in an environment where that old location can no longer satisfy the link, while keeping an independent backup.

07

Pack the eligible assets, inventory the rest

Pack Resources lets you include eligible resources in the .blend; saving makes that operation effective in the transmitted file. It does not gather every dependency: videos are a documented counterexample. Linked libraries have a separate embedding command. So list what is embedded and what must stay alongside the project.

For Pli, keeping the external PNG makes it easier to edit, while embedding it should let the pattern be found in the saved file. After modifying the texture, you must update the resource actually in use and then save the right version. Simply replacing a neighboring PNG does not prove that the .blend uses its new pixels.

Transfer decisions for Pli and its adaptations
ResourcePack choiceIf you extend the scene
PNG patternSeparate source and intended embeddingReload the modified texture, verify, then save
Geometry and procedural materialsBuilt by the scriptKeep the script version or the edited project
Linked .blend libraryNoneInventory the library and its own dependencies
Video, audio or cacheNoneKeep and check the necessary external files
08

Reopen in a second process and fill in a real acceptance sheet

After a successful rebuild, inspect_scene.py opens the .blend in a second Blender process, with execution of its internal scripts disabled. It checks the inventory, the camera, the output settings, the AgX transform, the embedded texture and its relative path. Its report describes the opening and the data; it does not attest to render quality.

Open the resulting PNG in an image viewer. Check that the bottle stays entirely within the frame, that the label shows the cream, purple and orange pattern, that the contact with the base is readable and that no magenta texture appears. These criteria are acceptance intentions; we do not publish a rendered Blender reference image for this pack.

Copy 06_livraison/modele-reception.csv to 06_livraison/reception-executee.csv, then fill in this new sheet. Keep the template intact: it belongs to the manifest. The validator accepts the filled copy without modifying the source fingerprints, which our acceptance test verified. Then inventory this sheet and the approved outputs in your delivery archive.

Inspection after reconstruction — second Blender process
blender --background --factory-startup --python-exit-code 1 --python inspect_scene.py
09

A missing dependency must stop the check

The pack's negative exercise removes pli-chevron.png from a test copy, without touching the sources. The validator then returns code 1 and identifies both the file missing from the inventory and the recipe's missing dependency. The generator starts with this same check: it must refuse to continue with this incomplete copy.

Another trial alters the PNG's first byte; the check detects a different fingerprint and an invalid image signature. A third replaces its path with a reference pointing outside the folder, also rejected. These trials verify concrete transfer defects. They simulate neither the Blender opening nor the disappearance of a cache in an animation.

To redo the exercise, work only on an extra extraction and keep an intact copy. The fix is to find the right resource and its expected location. A different texture with the same name does not satisfy the integrity check.

10

Adding an animation changes the scope of the check

The Pli scene has only one image and needs no cache. If you add smoke, cloth, or a simulation to it, document the cache type, its computation version, its location, and the entire useful range. Precomputation mechanisms depend on the physical system; do not generalize the behavior of one cache to all the others.

Freeze the result before copying it. For a sequence, check the start, the end, scene or simulation changes, but also the presence of every intermediate file. Three visually correct images do not prove that all 96 files of an animation from 1 to 96 are available. State clearly whether a cache is delivered or must be recomputed, with which parameters and which inputs.

Apply the same logic to texture, volume, sound, and editing media sequences. Do not delete the only sources after creating the ZIP: keep them until the copy is opened, the outputs are checked, and they are retrieved.

11

Color, memory, and duration: measuring the real project

The Pli pattern is used for the base color and is declared sRGB. A map that describes normals or displacement does not have the same role; its interpretation must match its data. Also keep the display transform and exposure when comparing outputs. A color difference can come from the display chain, unrelated to computing power.

The ZIP size does not indicate the GPU memory requirement. Evaluated geometry, textures actually loaded, and render steps matter more than the number of files in an archive. A small CPU preview predicts neither the memory peak nor the duration of the final GPU render. Measure a complete representative output at the final resolution before choosing a configuration.

The 3D workshop helps frame this check. Then compare GPU configurations according to compatibility and the observed peak, with a margin suited to the project. Choose 3, 7, or 30 days in the configurator to cover opening, tests, returns, computations, and retrieval; none of these windows on its own guarantees a render deadline. The export guide extends the work through to the deliverable files.

12

What has been verified, and what remains to be run

The seven checks below were run on Windows with Python 3.14.6. The pack contains fourteen files, including the manifest; thirteen files are covered by its hashes. The texture was rebuilt and compared byte for byte in this environment. This PNG equality does not demonstrate identical 3D rendering across versions or hardware.

The checks cover the files, their dependencies, and transfer errors. The generation of the .blend, the inspection of the scene, and the CPU or GPU renders were not tested. The README gives the procedure to verify them in Blender 4.5.x LTS.

Results actually obtained on pack v1.0.0
TrialResultScope
ZIP extracted, originals inaccessibleCode 0Integrity, acceptance testing, PNG and Python syntax
Copy of the sheet then data entryCode 0Sources remain audited after receipt
Texture removed from a copyCode 1 expectedMissing dependency identified
Altered textureCode 1 expectedPNG fingerprint and signature rejected
Path outside the folderCode 1 expectedExternal reference rejected
Pattern reconstructionIdentical bytesProcedural texture, not a Blender render
Generator launched by Python aloneExpected refusalBlender required, no bpy execution
THE PRODUCTION JOURNALS

To move your project forward.

All notebooks
GOING FURTHER

Your questions.

Why doesn't the pack already include a .blend file?+

The pack provides the original generator and its assets. Creating and opening the scene is still left to be tested: no .blend or render is included. On a machine with Blender 4.5.x LTS, the README explains how to create the .blend and then inspect it in a second process.

Can a .blend with embedded assets replace the whole folder?+

It depends on the data being used. Some resources can be embedded; others, particularly videos, remain external. Keep an explicit inventory and track your own scene's dependencies. The Pli pack keeps its source texture so changes remain possible.

Why does the manifest flag my changes as an error?+

It describes the files distributed in version 1.0.0. Modifying a script, a recipe or a texture normally changes its fingerprint. Work in a new version and build its inventory. For acceptance, copy the CSV template to reception-executee.csv: this output remains separate from the controlled template.

Does this pack let you choose a GPU card directly?+

No. It is used to prepare and check a transfer. No VRAM requirement or GPU time has been measured for this scene. Test your full production, its compatibility and its memory peak before sizing the rental.

Keep these markers in your project.

Open my notebook