Some Scans
Yesterday I went for a walk into Loxley, the neighbouring suburb. I didn't find the kinds of rocks I was hoping for—what few there were had plants growing around them, making a clean scan impossible. It wasn't a complete waste—I did some practice scans of various things, including an old set of stocks outside the Wadsley Jack.![]() |
| Practice scans |
I'm heading into the city centre today; there are a few rocky objects that are used to block car access, but mostly this job is done with very boring blocks of concrete. I'll keep practising!
Addons: Atmosphere 2
So it looks like I was wrong about being blocked from upgrading to Atmosphere 2. I think I must have accidentally tried to apply two coupons at once. This time it worked using just the 70% upgrade coupon.![]() |
| Basic Sky |
![]() |
| New Clouds |
Atmosphere 2's clouds are instantly good-looking, but even though there are a lot of parameters, I wasn't seeing True Sky 3's level of control. It's early days, of course. If anything, A2's parameters are deeper and more "mathsy".
Addon: Metalworks
Metalworks looks fab! It's a really deep metal shader system for creating complex metal surfaces. The only snag right now is that it crashes whenever I try to render the results. Not a good start!
Worse than that, it is crashing renders even when Metalworks is not being applied! Only, this might be caused by a new NVIDIA driver installation. I hadn't restarted since installing last week's update. After a system restart, the crash-on-render stopped happening.
Worse than that, it is crashing renders even when Metalworks is not being applied! Only, this might be caused by a new NVIDIA driver installation. I hadn't restarted since installing last week's update. After a system restart, the crash-on-render stopped happening.
# Blender 5.2.0, Commit date: 2026-07-13 15:20, Hash fbe6228777e7
bpy.ops.true_vault.asset_store_init() # Operator
bpy.ops.true_vault.asset_store_fetch_page(page=1, use_offline=False) # Operator
bpy.ops.object.delete(use_global=False, confirm=False) # Operator
Deleted 1 object(s) # Info
bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1)) # Operator
bpy.context.space_data.shading.type = 'RENDERED' # Property
bpy.ops.object.light_add(type='SUN', radius=1, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1)) # Operator
bpy.ops.lightwrangler.apply_custom_data_block(light_name="Sun", light_type="SUN", customization="Default") # Operator
bpy.ops.transform.translate(value=(-6.25838, -2.8598, 1.13404), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.rotate(value=-0.854849, orient_axis='Z', orient_type='VIEW', orient_matrix=((0.805897, 0.592056, -1.49012e-08), (-0.460156, 0.626358, 0.629232), (0.37254, -0.507096, 0.777218)), orient_matrix_type='VIEW', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.context.space_data.context = 'DATA' # Property
bpy.context.object.data.photographer.irradiance = 3 # Property
bpy.ops.transform.rotate(value=-0.42096, orient_axis='Z', orient_type='VIEW', orient_matrix=((0.805897, 0.592056, -1.49012e-08), (-0.460156, 0.626358, 0.629232), (0.37254, -0.507096, 0.777218)), orient_matrix_type='VIEW', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.translate(value=(0, 0, 5.05358), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.mesh.primitive_plane_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1)) # Operator
bpy.ops.transform.resize(value=(-2.01375, -2.01375, -2.01375), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.resize(value=(2.5325, 2.5325, 2.5325), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.resize(value=(1.63292, 1.63292, 1.63292), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.translate(value=(-0, -0, -3.85117), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.resize(value=(1.65643, 1.65643, 1.65643), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.resize(value=(0.81061, 0.81061, 0.81061), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.resize(value=(1.71865, 1.71865, 1.71865), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.rotate(value=0.504055, orient_axis='Z', orient_type='VIEW', orient_matrix=((0.805897, 0.592056, -1.49012e-08), (-0.460156, 0.626358, 0.629232), (0.37254, -0.507096, 0.777218)), orient_matrix_type='VIEW', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.rotate(value=1.33445, orient_axis='Z', orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.transform.rotate(value=-1.75908, orient_axis='Z', orient_type='VIEW', orient_matrix=((0.805897, 0.592056, -1.49012e-08), (-0.460156, 0.626358, 0.629232), (0.37254, -0.507096, 0.777218)), orient_matrix_type='VIEW', mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False) # Operator
bpy.ops.tt.render(use_viewport=True) # Operator
# backtrace
Exception Record:
ExceptionCode : EXCEPTION_ACCESS_VIOLATION (0xc0000005)
Exception Address : 0x00007FF66E2DA0FD
Exception Module : blender.exe
Exception Flags : 0x00000000
Exception Parameters : 0x2
Parameters[0] (action) : 0x0000000000000000 (read)
Parameters[1] (address) : 0x0000000000000050
Stack trace:
blender.exe :0x00007FF66E2DA0C0 blender::BKE_layer_eval_view_layer_indexed
blender.exe :0x00007FF66F45EBE0 blender::deg::`anonymous namespace'::deg_task_run_func
blender.exe :0x00007FF66E531C80 tbb::detail::d2::function_task<blender::Task>::execute
tbb12.dll :0x00007FF8132A8C60 tbb::detail::r1::current_context
tbb12.dll :0x00007FF8132A8C60 tbb::detail::r1::current_context
blender.exe :0x00007FF66E531750 tbb::detail::d0::try_call_proxy<`tbb::detail::d2::task_group_base::wait'::`1'::<lambda_1> >::on_com
blender.exe :0x00007FF66E531000 blender::TaskPool::tbb_task_pool_work_and_wait
blender.exe :0x00007FF66F45E760 blender::deg::`anonymous namespace'::evaluate_graph_threaded_stage
blender.exe :0x00007FF66F45E390 blender::deg::deg_evaluate_on_refresh
blender.exe :0x00007FF66E592890 blender::deg_flush_updates_and_refresh
blender.exe :0x00007FF66DE937B0 blender::scene_graph_update_tagged
blender.exe :0x00007FF66E276FF0 blender::wm_event_do_depsgraph
blender.exe :0x00007FF66E2772E0 blender::wm_event_do_refresh_wm_and_depsgraph
blender.exe :0x00007FF66E277380 blender::wm_event_do_notifiers
blender.exe :0x00007FF66E272280 blender::WM_main
blender.exe :0x00007FF66DE31030 main
blender.exe :0x00007FF672A2C0A4 __scrt_common_main_seh
KERNEL32.DLL :0x00007FF82EEDCCA0 BaseThreadInitThunk
ntdll.dll :0x00007FF82FDEAD40 RtlUserThreadStart
Threads:
Thread : 00000eb0
ntdll.dll :0x00007FF82FEA03F0 NtWaitForSingleObject
KERNELBASE.dll :0x00007FF82D5CC070 WaitForSingleObjectEx
IlmThread.dll :0x00007FF817224920 IlmThread_3_4::Semaphore::wait
IlmThread.dll :0x00007FF8172233C0 IlmThread_3_4::ThreadPool::setThreadProvider
IlmThread.dll :0x00007FF817221280 IlmThread_3_4::supportsThreads
ucrtbase.dll :0x00007FF82CF7CBE0 wcsrchr
KERNEL32.DLL :0x00007FF82EEDCCA0 BaseThreadInitThunk
ntdll.dll :0x00007FF82FDEAD40 RtlUserThreadStart
...snip


