appleseed 1.9.0-beta

@dictoon dictoon released this May 1, 2018 · 152 commits to master since this release

These are the release notes for appleseed 1.9.0-beta.

These notes are part of a larger release, check out the main announcement for details.


This release is the result of four intense months of work by the incredibly talented and dedicated appleseed development team.

Many thanks to our code contributors for this release:

  • Muhamed Ali
  • Aytek Aman
  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • Junchen Deng
  • Jonathan Dent
  • Sayali Deshpande
  • Dorian Fevrier
  • Eyal Landau
  • Thomas Manceau
  • Kevin Masson
  • Fedor Matantsev
  • Jino Park
  • Sergo Pogosyan
  • Girish Ramesh
  • Jamorn Sriwasansak
  • Phillip Thomas
  • Esteban Tovagliari
  • Neil You

And to our internal testers, feature specialists and artists, in particular:

  • Richard Allen
  • François Gilliot
  • Juan Carlos Gutiérrez
  • Luke Kliber
  • Giuseppe Lucido

Interested in joining the appleseed development team, or want to get in touch with the developers? Join us on Discord. Simply interested in following appleseed's development and staying informed about upcoming appleseed releases? Follow us on Twitter.


Random-Walk Subsurface Scattering

Artem Bishev was one of our Google Summer of Code participants last year. He took up the rather intimidating project of implementing volumetric rendering in appleseed, and did an admirable job. Make sure to check out his final report for a detailed account of the features he implemented during the summer and the results he obtained.

Artem did not stop contributing once the summer was over. Instead, he kept pushing forward and implemented the much anticipated "Random Walk Subsurface Scattering", a more accurate method of computing subsurface scattering that actually simulates the travel of light under the surface of objects.

The results are nothing short of amazing, especially since Random Walk SSS appears to be as fast or sometimes faster than diffusion-based SSS (the traditional, less accurate method). Here are a couple renders showing Random Walk SSS in action:

Stanford Dragon, render by Artem Bishev
(Stanford Dragon, render by Artem Bishev.)

Statue of Lu-Yu by Artec 3, render by Giuseppe Lucido
(Statue of Lu-Yu by Artec 3D, render by Giuseppe Lucido.)


Esteban integrated the BCD denoiser in appleseed. BCD stands for Bayesian Collaborative Denoiser: it's a denoising algorithm designed to remove the last bits of noise from high quality renders rendered with many samples per pixel (unlike other denoising techniques that basically reconstruct an image from a very small number of samples per pixel).

Here is the denoiser in action (click for the original uncompressed image):

BCD Denoiser

Light Paths Recording and Visualization

Light paths can now be efficiently recorded during rendering, without significantly impacting render times. This is part of a larger project where appleseed is being used in an industrial context to analyze how light is scattering on or inside machines and instruments.

When light paths recording is enabled in the rendering settings, it becomes possible (once rendering is stopped) to explore and visualize all light paths that contributed to any given pixel of the image. Light paths can be recorded for the whole image or for a given region when a render window is defined. Light paths can then be visualized interactively via an OpenGL render of the scene. Light paths can also be exported to disk in an open and efficient binary file format.

Here is a screenshot of showing one of the many light paths that contributed to a pixel that was chosen in the render of a 3D model of the Hubble Space Telescope made freely available by NASA:

Visualizing light paths on the Hubble telescope

Here is a short video showing the process of enabling light paths capture and visualizing light paths in

Light paths demo video

Shutter Opening/Closing Curves

Jino Park and Fedor Matantsev implemented support for non-instantaneous opening and closing of camera shutters: it is now possible to specify how long a camera's shutter takes to open or close, as well as the rate at which it opens and closes.

Here is an illustration showing three cases:

  1. "Instantaneous" means that the camera's shutter opens and closes instantaneously.
  2. "Linear" means that the camera's shutter opens and closes linearly (or, said differently, the camera's shutter opens and closes at a constant rate).
  3. "Bézier" means that the camera's shutter opening/closing position is defined by an arbitrary Bézier curve.

Shutter Opening/Closing Curves

Render Stamp

It is now possible to have appleseed add a "render stamp" to renders. The render stamp is fully configurable and can contain a mixture of arbitrary text and predefined variables such as appleseed version, render time, etc. Here is what the default render stamp looks like:

Render Stamp

Pixel Time AOV

Esteban also added a new Pixel Time AOV (or "render layer") that holds per-pixel render times (technically, the median time it took to render one sample inside each pixel). This new AOV can help figure out which areas of the image are most expensive to render, and thus help optimize renders.

Here is an example of the pixel time AOV (with exposure adjusted) that shows that grooves and other concave areas of the shaderball are more expensive to render than convex ones (the scattered white dots are likely due to the operating system interrupting the rendering process once in a while):

Pixel Time AOV

Other New Features and Improvements


  • Considerably sped up OSL texturing.
  • Considerably reduced noise when using diffusion-based BSSRDFs.
  • Improved the Directional Dipole BSSRDF.
  • Fixed occasional infinite samples warning with diffusion-based BSSRDFs.
  • Added OSL vector transforms.
  • Fixed OSL NDC transforms.
  • Fixed the behavior of OSL's printf() function.
  • Fixed crash with Light Tree and light-emitting OSL shaders.
  • Added support for writing grayscale + alpha PNG files.
  • Improved logging of rendering settings.
  • Allow to save extra (internal) AOVs to disk.
  • Added support for energy compensation to a number of BSDFs.
  • Improved sampling of OSL's as_glossy() closure.
  • Added exposure multiplier inputs to lat-long environment EDF, mirrorball environment EDF and spot light.
  • Fixed and improved detection of alpha mapping.
  • Fixed self-intersections when rendering curves.
  • AOVs are now always saved as OpenEXR files, regardless of the file format chosen for the main image.
  • Added an Invalid Samples AOV.
  • Use Blackman-Harris instead of Gaussian when an invalid pixel filter is specified.
  • Fixed default OIIO texture wrap modes in Disney material.

  • Added Settings dialog.
  • Fixed crash when plugins directory does not exist.
  • Fixed crash when mouse is dragged out of canvas if the pixel inspection is toggled on.
  • Preserve environment EDFs transforms across edits.
  • Update color preview when typing values in color field of a color entity.
  • Small user interface improvements and tweaks.
  • Tweaked default bounce limits.
  • Fixed missing project file extensions in File → Open Recent menu.
  • Added a Clear Missing Files entry in File → Open Recent menu.
  • Fixed navigation during interactive rendering after having edited the frame entity.
  • Added "Bitmap Files" filter to image file dialogs.


  • AOVs are now sent to stdout when using --to-stdout.
  • Fixed AOVs disappearing when command line arguments alter the frame.


  • projecttool can now remove unused entities and print dependencies between entities.

OSL Shaders

  • New shaders: as_blackbody, as_blend_color, as_bump, as_composite_color, as_fresnel, as_subsurface, as_switch_surface, as_switch_texture, as_texture, as_texture_info, as_texture3d, as_triplanar.
  • Renamed shader as_layer_shader to as_blend_shader.
  • Fixed anisotropy rotation in as_disney_material.
  • Added Pref, Nref and UV coordinates to as_globals.
  • Increased max ray depth in OSL shaders from 32 to 100.
  • Enabled coating over transmission in as_standard_surface.
  • Allow to choose the SSS profile in as_standard_surface.
  • Don't limit incandescence amount to 1 in as_standard_surface.
  • The source code of the OSL shaders is now included with appleseed.

appleseed 1.8.1-beta

@dictoon dictoon released this Dec 21, 2017 · 542 commits to master since this release

These are the release notes for appleseed 1.8.1-beta.

appleseed 1.8.1-beta is a minor release fixing issues discovered in appleseed 1.8.0-beta.

Whiskey Glasses


  • Added energy compensation to glossy and metal BRDFs.
  • Fixed Max Ray Intensity which was partially broken in the previous release.
  • Fixed occasional warnings during rendering (NaN, negative or infinite pixel samples).
  • Improved handling of errors during loading of geometry assets.
  • Exposed Plastic BRDF to OSL via the as_plastic() closure.
  • Updated and improved dumpmetadata command line tool.
  • Light importance multiplier is now a numeric input.
  • Make's Windows icon multi-resolution.
  • Emit log message once packing project is complete.
  • Cleaned up appleseed OSL extensions (as_osl_extensions.h) file.

appleseed 1.8.0-beta

@dictoon dictoon released this Nov 26, 2017 · 619 commits to master since this release

These are the release notes for appleseed 1.8.0-beta.

These notes are part of a larger release, check out the main announcement for details.


This release is the fruit of the formidable work of the appleseed development team over the last six months.

Many thanks to our code contributors:

  • Aytek Aman
  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • Petra Gospodnetic
  • Roger Leigh
  • Gleb Mishchenko
  • Jino Park
  • Sergo Pogosyan
  • Esteban Tovagliari

And to our internal testers, feature specialists and artists, in particular:

  • Richard Allen
  • Dorian Fevrier
  • François Gilliot
  • JC Gutiérrez
  • Luke Kliber
  • Nathan Vegdahl

Interested in joining the appleseed development team, or want to get in touch with the developers? Join us on Slack. Simply interested in following appleseed's development and staying informed about upcoming appleseed releases? Follow us on Twitter.


Support for Procedural Objects

We introduced support for procedurally-defined objects, that is objects whose surface is defined by a function implemented in C++. This opens up a vast array of possibilities, from rendering fractal surfaces such as the Mandelbulb shown below, to rendering raw CAD models based on Constructive Solid Geometry without tessellating them into triangle meshes. One could even use this mechanism to prototype new acceleration structures with appleseed.

Mandelbulb Object

appleseed ships with three samples procedural objects in samples/cpp/: an infinite plane object, a sphere object and the Mandelbulb fractal. This last sample is particularly interesting: it's actually a generic Signed Distance Field raymarcher and a great toy to tinker with if you like procedural graphics!

Some good resources about Signed Distance Fields:

Support for Procedural Assemblies

We also introduced long-awaited support for procedural assemblies. In appleseed's terminology, an assembly is a "package" that represents a part of the scene. A procedural assembly is one that gets populated at render time instead of being described in the scene file. Somewhat schematically, a procedural assembly is defined by a C++ plugin which is invoked by the renderer when it needs to know the content of the assembly.

Procedural assemblies allow to procedurally populate a scene, for instance to generate thousands of instances of a single object based on rules, without having to store all those instances on disk.

Below is an example of a procedural assembly: it is a modern recreation of the sphereflake object designed by Eric Haines et al. and described in the 1987's article A Proposal for Standard Graphics Environments, rendered using subsurface scattering (using the Normalized Diffusion BSSRDF), a Disney BRDF and image-based lighting:

Sphereflake with Subsurface Scattering

For reference (and for fun; who doesn't love retro CG!) here is one early rendering of the Sphereflake by Eric Haines:

Original Sphereflake Rendering by Eric Haines


A particular type of procedural assembly supported by appleseed is an archive assembly. An archive assembly is defined by a bounding box and a reference to another appleseed scene file (extension .appleseed or .appleseedz). The referenced scene file is loaded by the renderer at the appropriate time. This is a common but powerful mechanism to assemble large and complex scenes out of smaller parts.

One important use of procedural assemblies in production is reading parts of scenes from Alembic archives, Pixar's USD scenes and other custom file formats.
We recently started working on adding support for loading geometry directly from Alembic archives.

AOV Subsystem Rewrite

This release saw the previous AOV mechanism completely ripped out and reimplemented from scratch. While flexible, the previous AOV mechanism made it hard or in some cases impossible to composite AOVs back together. Moreover it lacked fundamental features such as splitting direct lighting from indirect lighting contributions or splitting diffuse from glossy scattering modes.

The new AOV subsystem implements what you expect from a modern renderer. appleseed currently supports the following AOVs:

  • Direct Diffuse, Indirect Diffuse, Combined Diffuse
  • Direct Glossy, Indirect Glossy, Combined Glossy
  • Emission
  • Shading Normals
  • UVs
  • Depth

Here is an example of AOVs rendered from our shaderball scene:

Shaderball AOVs

And the beauty render:

Shaderball Beauty

AOVs must currently be declared manually in the scene file:

    <frame name="beauty">
        <parameter name="camera" value="/group/camera" />
        <parameter name="resolution" value="640 480" />
        <parameter name="crop_window" value="0 0 639 479" />
            <aov model="diffuse_aov" />
            <aov model="glossy_aov" />

The next release of appleseed will allow adding/removing AOVs directly from It will also add AOVs for our render denoiser, and if time allows, it will introduce native Cryptomatte support. We are also considering adding a motion vectors AOV in a future release.

Color Pipeline Overhaul

The color pipeline is another area that received a ton of attention in this release.

First of all, remember that appleseed is fully capable of spectral rendering, currently using 31 equidistant wavelengths in the 400 nm to 700 nm visible light range.

In the name of speed and accuracy, we no longer switch on-the-fly between RGB and spectral representations during rendering. We had a neat mechanism that supported this feature for many years but it had three main problems: it prevented us from being completely rigorous about color management, it incurred tremendous complexity in the very core of the renderer and it had nasty edge cases causing severe performance issues. Instead, we now let the user decide which color pipeline to use: RGB or spectral:

Color Pipeline Setting

The RGB pipeline is the default and for most purposes there is no point in changing it. However appleseed is one of the rare renderers with spectral capabilities and we will continue pushing and extending this mechanism over the releases to come. In particular the next release will extend the wavelength range to 380-780 nm and should feature a much improved RGB-to-spectral conversion algorithm.

We also removed a lot of settings from Frame entities that didn't make much sense anymore. appleseed's internal framebuffer is now always linear, unclamped, premultiplied and uses 32-bit floating point precision.

Finally, is now using OpenColorIO for color management. There is now a dropdown menu in to choose a display transform (an Output Device Transform in ACES terminology) at any point during or after rendering:

Display Transform Dropdown Menu in will populate this dropdown menu with transforms listed in OpenColorIO's configuration on the user's machine.

Support for Plugins (work-in-progress)

In addition to the procedural objects and procedural assemblies described above, this release also allows to extend all "scene modeling components" of appleseed via external plugins written in C++. This includes cameras, BSDFs, BSSRDFs, EDFs, lights, materials, textures, environments... There are technicalities that make this work incomplete in this release; we will gradually fix them as the need arises.

Substance Painter Export Presets

We now include Substance Painter export presets in the share/ folder inside appleseed's package.

Substance Painter with appeseed's Export Presets

Maps exported using these presets can be used in appleseed-maya and Gaffer with appleseed's new standard material:

Shaderball with Substance Material

Python Console in (work-in-progress)

Our Google Summer of Code 2017 student Gleb Mishchenko implemented a Python console inside, our scene tweaking, rendering, inspecting and debugging application:

Python Console in

Here is a closeup of the Python console loaded with a simple script that prints the name of all objects in the scene:

Python Console Closeup also supports Python plugins: any directory with a file inside studio/plugins/ will be imported and registered at startup. There are example plugins in samples/python/studio/plugins/.

Our motivation behind the Python console is threefold: simplify and speed up the development of; let users extend using Python plugins, and let users automate tedious tasks using one-off Python scripts directly inside, with immediate feedback on their scene.

This work is still very much in progress: our Python API is quite low-level and not as comfortable to use as it could be, and we have yet to bundle PySide to let scripts extend the user interface and add menus, panels and dialogs (however we did play with this and it already works on Linux).

Details of Gleb's GSoC project can be found in his report.

Support for Participating Media (work-in-progress)

Artem Bishev, another of our GSoC 2017 students, took upon himself the rather intricate task of implementing physically-based volumetric rendering in appleseed.

In this release, appleseed supports fully raytraced single-scattering and multiple-scattering inside homogeneous participating media. Two phase functions are currently supported: a fully isotropic phase function and the Henyey-Greenstein phase function.

A volumetric bunny in the Cornell Box (spectral render):

Volumetric Bunny in Cornell Box

This work is very much in progress. Main upcoming features are heterogeneous media and OpenVDB support.

Details of Artem's project can be found in his report.

New Light Sampling Algorithm (work-in-progress)

Petra Gospodnetić, our third GSoC student this year, spent her summer implementing a new light sampling strategy in appleseed based on Nathan Vegdahl's Light Tree algorithm. The Light Tree is a simple yet clever unbiased sampling algorithm that picks better candidate points on area/mesh light sources.

To illustrate the benefits of the Light Tree, here is a comparison between the existing light sampling algorithm and the new one on a scene making heavy use of mesh lights (both images were rendered with 16 samples/pixel):

Animated comparison between the CDF and LightTree algorithms

And here is the converged render:


Full details of Petra's work can be found in her report.

Other New Features and Improvements


  • The physical sun light can now cast soft shadows, and the observer-Sun distance can be changed.
  • Significantly improved our bump mapping implementation.
  • Fixed a number of artifacts on silhouettes of coarsely tessellated meshes.
  • Fixed artifacts due to high geometric complexity close to SSS materials.
  • Lookup environment after glossy bounces even if IBL is disabled.
  • Added instruction sets detection and release/host compatibility checks at startup.
  • Switched from CIE 1964 10° color matching funtions to CIE 1931 2° color matching functions.
  • Removed all color settings from Frame entities: pixel format, color space, clamping, premultiplied alpha, gamma correction.
  • Removed Shade Alpha Cutouts option.
  • Removed color and alpha multipliers from Physical Surface Shader.
  • Removed Velvet BRDF as it has been superseded by the Sheen BRDF.
  • Removed deprecated Microfacet BRDF in favor of higher-level ones such as Glass, Glossy, Metal or Plastic.
  • Save chromaticities in OpenEXR renders (currently: scene-referred linear sRGB / Rec. 709 primaries).
  • Made medium priorities signed (-128 to 127).
  • Fixed incorrect rendering when the number of direct lighting samples is fractional.

  • Improved the Entity Editor, in particular formatting and validation of numeric inputs.
  • Fixed bug where the Entity Editor would close after renaming the entity.
  • Fixed bug in material assignment editor window.
  • Automatically realign camera target if it is off the viewing direction.
  • Filtering regular expressions are now case-insensitive.
  • Added ability to close the project via FileClose.
  • Fixed multiple filtering bugs in the Tests dialog.
  • Added button in Tests dialog to check only visible items.
  • Improved handling of rendering failures such as out-of-memory errors.
  • Persist file filters in image/texture file dialogs.


  • Added --to-stdout mode to send rendered tiles to the standard output (in binary).
  • Removed --continuous-saving mode since it fundamentally could not work reliably.
  • Message coloring and verbosity settings set on the command line now have precedence over those set in settings/appleseed.cli.xml.

appleseed 1.7.1-beta

@dictoon dictoon released this Aug 2, 2017 · 1621 commits to master since this release

This minor release fixes appleseed.python (appleseed's Python bindings) on macOS.

appleseed 1.7.0-beta

@dictoon dictoon released this Jun 6, 2017 · 1621 commits to master since this release

These are the release notes for appleseed 1.7.0-beta.


The following people contributed code for this release, in alphabetical order:

  • Aytek Aman
  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • Andreea Dincu
  • Petra Gospodnetic
  • Andrei Ivashchenko
  • Kutay Macit
  • Nabil Miri
  • Gleb Mishchenko
  • Aakash Praliya
  • Animesh Tewari
  • Esteban Tovagliari



Subsurface Scattering Overhaul

We made deep improvements to our ray traced subsurface scattering implementation. The new code gives more accurate and consistent results. We also took this opportunity to add support for SSS sets:

SSS Sets

(On the left, each object is in its own SSS set; on the right, all objects are in the same SSS set.)

We also modified the Gaussian BSSRDF to expose the same parameters as other BSSRDF models. This makes finding the right BSSRDF model much easier.

Finally, we added Fresnel weight parameters to all BSSRDF models and we exposed the Gaussian BSSRDF to OSL.

New Path Tracing Controls

We added a few new controls to appleseed's unidirectional path tracer:

  • Low Light Threshold allows the path tracer to skip low contribution samples (thus saving the cost of expensive shadow rays) without introducing bias. By default the threshold is set to 0 (not skipping any sample) but we might change it in the future.

  • Separate diffuse, glossy and specular bounce limits, in addition to the existing global bounce limit.

New Plastic BRDF

appleseed now features a physically-based plastic BRDF:

Coffee Maker scene showcasing the new plastic BRDF
(Coffee Maker scene by Blend Swap user cekuhnen, lighting and material setup by Benedikt Bitterli, converted to appleseed using our new tool.)

OSL Shader Library

We added OSL shaders that expose some of appleseed' built-in BSDFs such as the Disney BRDF and our physically-based Glass BSDF, as well as Voronoi texture nodes (2D & 3D). We're continually growing and expanding this shader library.

In addition, we have now high quality OSL implementations of many Maya shading nodes. They are used in appleseed-maya, our soon to be released integration plugin for Autodesk Maya, to translate Maya shading networks to appleseed.

Other New Features and Improvements

  • The AOV subsystem has been rewritten to be more correct and to offer more features.
  • Added transparent support for packed project files (*.appleseedz).
  • Added initial support for archive assemblies.
  • Texture loading is now fully based on OpenImageIO, vastly expanding our image file format support.
  • Warn about invalid (NaN or negative) during interactive rendering.
  • Adjusted default rendering settings.
  • Added cube mesh primitive.
  • Added support for *.mitshair files (Mitsuba's curves file format).
  • Added alternative volume parameterization to glass BSDF.
  • Improved RGB <-> spectra conversions.
  • Improved bump mapping implementation.
  • Switched to OpenImageIO 1.7.10.
  • Use same defaults in Disney BRDF and Disney material.
  • Improved handling of project update errors.
  • Rely on the geometric normal for side determination when vertex normals are absent.
  • Allow to flip normals of an object instance with <parameter name="flip_normals" value="true" />.
  • Use faster probe ray mode in more cases.
  • Added highlight falloff controls to several BSDF models.
  • Added support for NDC and raster OSL coordinate systems.

Bug Fixes

  • Fixed sampling of Disney BRDF (also affects Disney material). The results are now more accurate.
  • Fixed rendering of textured area lights.
  • Fixed a number of cases where NaN values would be generated.
  • Properly close texture files when rendering ends.
  • Fixed bug in Unidirectional Path Tracer when the last bounce of a path is purely specular.
  • Properly handle infinite values in environment maps.
  • Fixed incorrect warning when using object alpha maps.
  • Fixed incorrect alpha mapping detection when OSL materials have alpha maps.
  • Fixed missing intersection filters on first renders.
  • Fixed ray differentials after transparent (alpha) intersections.
  • Fixed crash with OSL and nested dielectrics.

Removed Features

  • Removed experimental Frozen Display interactive rendering mode.
  • Removed fake translucency support from physical surface shader.
  • Removed aerial perspective support from physical surface shader.
  • Removed the Distributed Ray Tracing engine as it is now fully redundant with the Unidirectional Path Tracing engine configured with zero diffuse bounces.
  • Removed the systematic depth AOV that was generated with every render.


  • Exposed creation of mesh primitives.
  • Exposed environment EDF transforms.
  • Exposed logger verbosity levels.
  • Improved progress update in sample.

  • Lock down in final rendering mode.
  • Fixed rare bug where aborting a render was not working.
  • Fixed corner cases in camera controller.
  • Don't show irrelevant inputs in entity editor.
  • The scene picker now prints more information about the picking point.
  • Fixed color value not updating in entity editor when cancelling color picker dialog.
  • Update crop window in entity editor when setting or clearing crop window in render widget.
  • Added tooltips in rendering settings dialog.
  • Added File → Pack Project As... to pack a project to a single *.appleseedz file.
  • Added regular expression-based filter for tests in the Tests dialog.
  • Added keyboard shortcuts to tooltips.


  • Replaced updateprojectfile by projecttool, a new command line tool with more features.
  • Added to convert Mitsuba scenes to appleseed.

appleseed 1.7.0-beta Preview 1

@dictoon dictoon released this Jan 19, 2017 · 2402 commits to master since this release

This is a preview version of appleseed 1.7.0-beta.

appleseed 1.6.0-beta

@dictoon dictoon released this Dec 15, 2016 · 2707 commits to master since this release

These are the release notes for appleseed 1.6.0-beta.

The following people contributed code for this release, in alphabetical order:

  • Luis Barrancos
  • François Beaune
  • Esteban Tovagliari

Note: We are providing builds relying on the SSE 4.2 SIMD instruction set. Please contact us if your machine does not support SSE 4.2 and you would like a build relying on SSE 2 instead.


  • Fixed color shifting problems in SSS.
  • Fixed rare hanging in presence of SSS materials.
  • Fixed rare problems when mixing RGB colors and spectra.
  • Fixed rare problems with lat-long environment maps with fully black rows.
  • Fixed bug leading to absolute texture paths in projects when saving projects in place.
  • Reimplemented built-in mesh primitives to have better UV parameterizations.
  • Added support for multiple cameras.
  • We're now providing Visual Studio 2015 builds, in addition to Visual Studio 2013 ones.
  • Fixed bug when interpolated normals/tangents were null.


  • Added matrix[] and int[] parameters support.
  • Fixed a number of bugs in the background() closure.
  • Fixed crash with empty string parameters.
  • Improved shader compatibility with other renderers.
  • Added first set of shaders matching Maya shading nodes.
  • Removed mean cosine (g) parameter from appleseed subsurface closures.


  • Added missing Object and MeshObject methods to Python bindings.

appleseed 1.5.1-beta

@dictoon dictoon released this Sep 22, 2016 · 3061 commits to master since this release

appleseed 1.5.1-beta is a new build of appleseed 1.5.0-beta that restores Windows 7 compatibility.

There are no other changes.

appleseed 1.5.0-beta

@dictoon dictoon released this Sep 11, 2016 · 3061 commits to master since this release

These are the release notes for appleseed 1.5.0-beta.

The following people contributed code for this release: François Beaune, Ramon Blanquer, John Haddon, Esteban Tovagliari.

(appleseed render by François Gilliot, inspired by ferronne's amazing Revolution glassware collection.)


  • Massive scaling, responsiveness and speed improvements during interactive rendering.
  • Added support for parametric surface generation (plane, sphere and torus are currently implemented).
  • Diffuse Mean Free Path inputs in BSSRDFs are now colors instead of scalars.
  • Improved handling of asset files referenced by projects. In particular, textures referenced by SeExpr expressions are now properly tracked as project dependencies (#575).
  • Improved UV diagnostic surface shader.
  • Added facing ratio diagnostic shader.
  • Added background environment shader to shade the background with a solid color or a texture.
  • Fixed default range for IOR inputs.
  • Allow negative number of rendering threads (#774).
  • Added optional automatic computation of smooth normals and tangents on mesh objects at loading time.
  • Added support for environment transforms.
  • Fixed wrong background color for colored messages in console on Windows (#1037).
  • BSSRDFs now benefit from automatic IOR tracking; replaced Inside/Outside IOR with a single IOR value.
  • Print more rendering settings when rendering starts.
  • Changed default tile ordering to spiral.
  • Changed default reconstruction filter to 1.5-pixel Blackman-Harris.
  • Emit proper error messages when texture files referenced in SeExpr expressions cannot be loaded.
  • Emit proper error messages when failing to write project files to disk.
  • Fixed crash at exit time in appleseed.cli in benchmark mode.
  • Fixed several problems with the glass BSDF.
  • Fixed crash when loading deforming meshes without normals.
  • Fixed bug when path tracing a scene with specular BSDFs and a limited number of bounces.
  • Improved reporting and handling of invalid pixel samples.
  • Reduced startup time and memory usage in scenes with multiple lat-long environment EDFs.
  • Print full paths of entities instead of just entity names in log messages.


  • Improved the as_subsurface_surface shader.
  • Added Mari-style UDIM support to texture shaders.
  • Allows negative values of anisotropy in the Disney closure.

  • Improved the way entities bound to inputs are shown and behave.
  • Fixed crash when rendering the current project, after loading another project failed.
  • Persist the state of geometry of windows, dialogs and dockable panels.
  • No longer print camera settings every time the camera changes.
  • Fixed the file picker in entity edtor: file changes were not applied unless Enter was pressed.


  • Expose methods to set and retrieve the frame's crop window in appleseed.python.
  • Command line tools now load their settings from settings/
  • Message verbosity of all tools can now be set in settings files. Default verbosity is Info.