+
+(define-public opensubdiv
+ (package
+ (name "opensubdiv")
+ (version "3.4.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PixarAnimationStudios/OpenSubdiv")
+ (commit (string-append "v" (string-join (string-split version #\.)
+ "_")))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cippg6aqc5dlya1cmh3908pwssrg52fwgyylnvz5343yrxmgk12"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-glew-location
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "GLEW_LOCATION" (assoc-ref inputs "glew"))
+ #t))
+ (add-before 'check 'start-xorg-server
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The test suite requires a running X server.
+ (system (string-append (assoc-ref inputs "xorg-server")
+ "/bin/Xvfb :1 &"))
+ (setenv "DISPLAY" ":1")
+ #t)))))
+ (native-inputs
+ `(("xorg-server" ,xorg-server-for-tests)))
+ (inputs
+ `(("glew" ,glew)
+ ("libxrandr" ,libxrandr)
+ ("libxcursor" ,libxcursor)
+ ("libxinerama" ,libxinerama)
+ ("libxi" ,libxi)
+ ("zlib" ,zlib)
+ ("glfw" ,glfw)))
+ (home-page "http://graphics.pixar.com/opensubdiv/")
+ (synopsis "High performance subdivision surface evaluation")
+ (description "OpenSubdiv is a set of libraries that implement high
+performance subdivision surface (subdiv) evaluation on massively parallel CPU
+and GPU architectures.")
+ (license license:asl2.0)))
+
+(define-public opencsg
+ (let ((dot-to-dash (lambda (c) (if (char=? c #\.) #\- c))))
+ (package
+ (name "opencsg")
+ (version "1.4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/floriankirsch/OpenCSG.git")
+ (commit (string-append "opencsg-"
+ (string-map dot-to-dash version)
+ "-release"))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00m4vs6jn3scqczscc4591l1d6zg6anqp9v1ldf9ymf70rdyvm7m"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "src/Makefile"
+ (("/usr/local") (assoc-ref outputs "out")))
+ #t))
+ (add-before 'build 'skip-example
+ (lambda _ (chdir "src") #t)))))
+ (inputs
+ `(("glew" ,glew)
+ ("freeglut" ,freeglut)))
+ (synopsis "Library for rendering Constructive Solid Geometry (CSG)")
+ (description
+ "OpenCSG is a library for rendering Constructive Solid Geometry (CSG) using
+OpenGL. CSG is an approach for modeling complex 3D-shapes using simpler ones.
+For example, two shapes can be combined by uniting them, by intersecting them,
+or by subtracting one shape from the other.")
+ (home-page "http://www.opencsg.org/")
+ (license license:gpl2))))
+
+(define-public coin3D
+ ;; The ‘4.0.0’ zip archive isn't stable, nor in fact a release. See:
+ ;; https://bitbucket.org/Coin3D/coin/issues/179/coin-400-srczip-has-been-modified
+ (let ((revision 1)
+ (changeset "ab8d0e47a4de3230a8137feb39c142d6ba45f97d"))
+ (package
+ (name "coin3D")
+ (version
+ (simple-format #f "3.1.3-~A-~A" revision (string-take changeset 7)))
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://bitbucket.org/Coin3D/coin")
+ (changeset changeset)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ff44jz6lg4rylljvy69n1hcjh9y6achbv9jpn1cv2sf8cxn3r2j"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file
+ '("cfg/csubst.exe"
+ "cfg/wrapmsvc.exe"))
+ #t))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)))
+ (inputs
+ `(("boost" ,boost)
+ ("freeglut" ,freeglut)
+ ("glew" ,glew)))
+ (arguments
+ `(#:configure-flags
+ (list
+ "-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
+ (string-append "-DBOOST_ROOT="
+ (assoc-ref %build-inputs "boost")))))
+ (home-page "https://bitbucket.org/Coin3D/coin/wiki/Home")
+ (synopsis
+ "High-level 3D visualization library with Open Inventor 2.1 API")
+ (description
+ "Coin is a 3D graphics library with an Application Programming Interface
+based on the Open Inventor 2.1 API. For those who are not familiar with
+Open Inventor, it is a scene-graph based retain-mode rendering and model
+interaction library, written in C++, which has become the de facto
+standard graphics library for 3D visualization and visual simulation
+software in the scientific and engineering community.")
+ (license license:bsd-3))))