Loading pkgs/applications/misc/blender/wrapper.nix +5 −11 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ , lib , blender , makeWrapper , python39Packages , python3Packages }: { name ? "wrapped" , packages ? [] Loading @@ -12,7 +12,7 @@ stdenv.mkDerivation { inherit (blender) version; src = blender; nativeBuildInputs = [ python39Packages.wrapPython makeWrapper ]; nativeBuildInputs = [ python3Packages.wrapPython makeWrapper ]; installPhase = '' mkdir $out/{share/applications,bin} -p sed 's/Exec=blender/Exec=blender-${name}/g' $src/share/applications/blender.desktop > $out/share/applications/blender-${name}.desktop Loading @@ -22,15 +22,9 @@ stdenv.mkDerivation { buildPythonPath "$pythonPath" echo '#!/usr/bin/env bash ' >> $out/bin/blender-${name} for p in $program_PATH; do echo "export PATH=\$PATH:$p " >> $out/bin/blender-${name} done for p in $program_PYTHONPATH; do echo "export PYTHONPATH=\$PYTHONPATH:$p " >> $out/bin/blender-${name} done echo 'exec ${blender}/bin/blender "$@"' >> $out/bin/blender-${name} chmod +x $out/bin/blender-${name} makeWrapper ${blender}/bin/blender $out/bin/blender-${name} \ --prefix PATH : $program_PATH \ --prefix PYTHONPATH : $program_PYTHONPATH ''; pythonPath = packages; Loading pkgs/development/python-modules/bpycv/bpycv-test.py +8 −4 Original line number Diff line number Diff line Loading @@ -5,8 +5,11 @@ import bpycv import os import glob import random from pathlib import Path example_data_dir = os.environ['BPY_EXAMPLE_DATA'] out_dir = Path(os.environ['out']) out_dir.mkdir(parents=True, exist_ok=True) models = sorted(glob.glob(os.path.join(example_data_dir, "model", "*", "*.obj"))) cat_id_to_model_path = dict(enumerate(sorted(models), 1)) Loading @@ -19,6 +22,7 @@ bpy.context.scene.render.engine = "CYCLES" bpy.context.scene.cycles.samples = 32 bpy.context.scene.render.resolution_y = 1024 bpy.context.scene.render.resolution_x = 1024 bpy.context.view_layer.cycles.denoising_store_passes = False # A transparency stage for holding rigid body stage = bpycv.add_stage(transparency=True) Loading Loading @@ -69,8 +73,8 @@ for i in range(20): # render image, instance annoatation and depth in one line code result = bpycv.render_data() dataset_dir = "./dataset" result.save(dataset_dir=dataset_dir, fname="0", save_blend=True) print(f'Save to "{dataset_dir}"') print(f'Open "{dataset_dir}/vis/" to see visualize result.') result.save(dataset_dir=str(out_dir.resolve()), fname="0", save_blend=True) print(f'Save to "{out_dir}"') print(f'Open "{out_dir}/vis/" to see visualize result.') pkgs/development/python-modules/bpycv/default.nix +35 −25 Original line number Diff line number Diff line { lib { stdenv , lib , beautifulsoup4 , blender , blender-with-packages , boxx , bpycv , buildPythonPackage , fetchPypi , fetchFromGitHub , fetchPypi , fetchurl , writeText , blender , minexr , beautifulsoup4 , zcs , requests , opencv3 , boxx , python3Packages , requests , runCommand , writeText , zcs }: buildPythonPackage rec { Loading @@ -37,27 +42,32 @@ buildPythonPackage rec { ''; # pythonImportsCheck = [ "bpycv" ]; # this import depends on bpy that is only available inside blender nativeCheckInputs = [ blender ]; checkPhase = let bpycv_example_data = fetchFromGitHub { doCheck = false; passthru.tests = { render = runCommand "bpycv-render-test" { BPY_EXAMPLE_DATA = fetchFromGitHub { owner = "DIYer22"; repo = "bpycv_example_data"; hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q="; rev = "6ce0e65c107d572011394da16ffdf851e988dbb4"; }; in '' TEMPDIR=$(mktemp -d) pushd $TEMPDIR cp -r ${bpycv_example_data} example_data chmod +w -R example_data BPY_EXAMPLE_DATA=${bpycv_example_data} blender -b -P ${./bpycv-test.py} popd nativeBuildInputs = [ ((blender-with-packages.override {inherit blender python3Packages;}) { packages = [ bpycv ]; }) ]; } '' blender-wrapped -b -P ${./bpycv-test.py} ''; }; meta = with lib; { description = "Computer vision utils for Blender"; homepage = "https://github.com/DIYer22/bpycv"; license = licenses.mit; maintainers = with maintainers; [ lucasew ]; maintainers = [ maintainers.lucasew ]; broken = stdenv.isAarch64; inherit (blender.meta) platforms; }; } Loading
pkgs/applications/misc/blender/wrapper.nix +5 −11 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ , lib , blender , makeWrapper , python39Packages , python3Packages }: { name ? "wrapped" , packages ? [] Loading @@ -12,7 +12,7 @@ stdenv.mkDerivation { inherit (blender) version; src = blender; nativeBuildInputs = [ python39Packages.wrapPython makeWrapper ]; nativeBuildInputs = [ python3Packages.wrapPython makeWrapper ]; installPhase = '' mkdir $out/{share/applications,bin} -p sed 's/Exec=blender/Exec=blender-${name}/g' $src/share/applications/blender.desktop > $out/share/applications/blender-${name}.desktop Loading @@ -22,15 +22,9 @@ stdenv.mkDerivation { buildPythonPath "$pythonPath" echo '#!/usr/bin/env bash ' >> $out/bin/blender-${name} for p in $program_PATH; do echo "export PATH=\$PATH:$p " >> $out/bin/blender-${name} done for p in $program_PYTHONPATH; do echo "export PYTHONPATH=\$PYTHONPATH:$p " >> $out/bin/blender-${name} done echo 'exec ${blender}/bin/blender "$@"' >> $out/bin/blender-${name} chmod +x $out/bin/blender-${name} makeWrapper ${blender}/bin/blender $out/bin/blender-${name} \ --prefix PATH : $program_PATH \ --prefix PYTHONPATH : $program_PYTHONPATH ''; pythonPath = packages; Loading
pkgs/development/python-modules/bpycv/bpycv-test.py +8 −4 Original line number Diff line number Diff line Loading @@ -5,8 +5,11 @@ import bpycv import os import glob import random from pathlib import Path example_data_dir = os.environ['BPY_EXAMPLE_DATA'] out_dir = Path(os.environ['out']) out_dir.mkdir(parents=True, exist_ok=True) models = sorted(glob.glob(os.path.join(example_data_dir, "model", "*", "*.obj"))) cat_id_to_model_path = dict(enumerate(sorted(models), 1)) Loading @@ -19,6 +22,7 @@ bpy.context.scene.render.engine = "CYCLES" bpy.context.scene.cycles.samples = 32 bpy.context.scene.render.resolution_y = 1024 bpy.context.scene.render.resolution_x = 1024 bpy.context.view_layer.cycles.denoising_store_passes = False # A transparency stage for holding rigid body stage = bpycv.add_stage(transparency=True) Loading Loading @@ -69,8 +73,8 @@ for i in range(20): # render image, instance annoatation and depth in one line code result = bpycv.render_data() dataset_dir = "./dataset" result.save(dataset_dir=dataset_dir, fname="0", save_blend=True) print(f'Save to "{dataset_dir}"') print(f'Open "{dataset_dir}/vis/" to see visualize result.') result.save(dataset_dir=str(out_dir.resolve()), fname="0", save_blend=True) print(f'Save to "{out_dir}"') print(f'Open "{out_dir}/vis/" to see visualize result.')
pkgs/development/python-modules/bpycv/default.nix +35 −25 Original line number Diff line number Diff line { lib { stdenv , lib , beautifulsoup4 , blender , blender-with-packages , boxx , bpycv , buildPythonPackage , fetchPypi , fetchFromGitHub , fetchPypi , fetchurl , writeText , blender , minexr , beautifulsoup4 , zcs , requests , opencv3 , boxx , python3Packages , requests , runCommand , writeText , zcs }: buildPythonPackage rec { Loading @@ -37,27 +42,32 @@ buildPythonPackage rec { ''; # pythonImportsCheck = [ "bpycv" ]; # this import depends on bpy that is only available inside blender nativeCheckInputs = [ blender ]; checkPhase = let bpycv_example_data = fetchFromGitHub { doCheck = false; passthru.tests = { render = runCommand "bpycv-render-test" { BPY_EXAMPLE_DATA = fetchFromGitHub { owner = "DIYer22"; repo = "bpycv_example_data"; hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q="; rev = "6ce0e65c107d572011394da16ffdf851e988dbb4"; }; in '' TEMPDIR=$(mktemp -d) pushd $TEMPDIR cp -r ${bpycv_example_data} example_data chmod +w -R example_data BPY_EXAMPLE_DATA=${bpycv_example_data} blender -b -P ${./bpycv-test.py} popd nativeBuildInputs = [ ((blender-with-packages.override {inherit blender python3Packages;}) { packages = [ bpycv ]; }) ]; } '' blender-wrapped -b -P ${./bpycv-test.py} ''; }; meta = with lib; { description = "Computer vision utils for Blender"; homepage = "https://github.com/DIYer22/bpycv"; license = licenses.mit; maintainers = with maintainers; [ lucasew ]; maintainers = [ maintainers.lucasew ]; broken = stdenv.isAarch64; inherit (blender.meta) platforms; }; }