IceSL is a state of the art slicer (STL => G-code) with advanced modeling capabilities.
Download it now, or try its online version.

IceSL aims at making our latest research in modeling and slicing available as quickly as possible, in powerful yet accessible software. It integrates several ground breaking ideas that our team developed over the years, such as cubic/tetrahedral infills, bridge support structures, optimal adaptive layer thickness optimization, progressive infills, efficient offsetting, tight protective shields, maximal self-supporting cavities, and advanced path planning for dual-color printing *. Several of these features have inspired other slicers. Why wait? You can benefit from latest advances right now in IceSL! (and it is free, see our license).

IceSL core technology is exposed through three different software:

  • IceSL-forge is the most complete and powerful software. It combines modeling and slicing and gives unprecedented flexibility for modeling and fabricating complex, customizable shapes. Modeling is done through scripting with a Lua-based language that allows to describe boolean combinations of shapes (triangle meshes, voxels, implicit surfaces, shaders). Thanks to state of the art rendering technology, all operations are performed interactively with real-time feedback (see it in action), allowing interactive customization of model parameters (live customization examples). The same technology enables efficient slicing and generation of printer instructions (e.g. G-code), avoiding the expensive step of producing a mesh. Nothing stands between your model and your printer!

  • IceSL-slicer focuses on slicing. Given a 3D model (e.g. STL), it will use our slicing technology to generate instructions for your printer (G-code, but also images for DLP printers and cutting paths for laser cutters).

  • SliceCrafter is an online version of our slicing technology. It is less powerful than IceSL-slicer, but runs entirely from within a web browser.

  • (*) Shields, cavities, and multi-color optimizations are available in version 1.x only. They'll come back soon, better and more powerful.



IceSL 2.1 released
IceSL 2.1 includes several interface improvements (tooltips, multi-language, printer and material profiles) and introduces smooth per-layer settings, an adaptive slicing optimizer and progressive infills! This gives you unprecedented control over your prints.


IceSL 2.0 released
We are happy to announce the release of a new major version. This is a significant upgrade with a complete overhaul of most features. Here is a quick overview:

  • Up to 10 times faster slicing.
  • Can now handle large, complex objects.
  • Voxel distance fields.
  • Bridge support structures.
  • Faster visualization of extreme implicit volumes (e.g. lattices).
  • Distribution of elements along surfaces (cellular textures).
  • Many other things! Stay tuned on @iceslapp

Key features

Per-layer settings

IceSL gives you unprecedented control over your prints by allowing most settings to be specified per-layer, with smooth variations. This is done through a simple interface specifying parameter values at different heights.

image post
IceSL allows you to precisely control parameter variations across the print height, here the infill density. 3DBenchy by CreativeTools

Optimal adaptive slicing

IceSL features a state of the art algorithm for automatic layer thickness selection. It computes the best possible choice of slice thicknesses that will maximize part accuracy, given a number of slices. Yes, this means you get to choose a number of slices (which strongly correlates with printing time in most cases), and the algorithm selects the slice thicknesses than provide the most accurate result for this choice.

image post
The adaptive layer thickness optimizer chooses the best thicknesses for a given number of slices (top left slider). 3DBenchy by CreativeTools


Optimal Discrete Slicing
Marc Alexa, Kristian Hildebrand, Sylvain Lefebvre
ACM Transactions on Graphics 2017

Cubic, tetrahedral and hierarchical infills

In 2015 IceSL introduced self-supported cubic infills for FDM 3D printing, as well as their hierarchical and tetrahedral versions. The hierarchical version has been superseded by the progressive infill patterns (see below). Tetrahedral infills are now the default as they present an excellent compromise in speed, strength and weight.

image post image post image post
Left:To the best of our knowledge, the very first cubic infill. Middle: The first hierarchical cubic infill. Right: The first progressive cubic infill, from 20% (bottom) to 50% (top)


3d infilling: faster, stronger, simpler
Sylvain Lefebvre, blog post, July 2015.

Progressive infills

IceSL features a unique progressive infill pattern that can smoothly vary in density along height. This is a perfect companion to per-layer settings. Besides saving time and material in large parts, it allows to vary elasticity when printing with flexible filament!


Not yet published.

Advanced bridge supports

IceSL features a powerful support technique that optimizes a small but reliable disposable bridge structure. While many other software rely on triangles to detect overhangs, in IceSL the supports are created after analyzing the deposition paths. This allows for a more precise positioning of the supports, as well as an orientation of the support connectors optimized for easy removal.
image post image post
Left: print with supports. Right: after cleanup. Female knight by sotckto


Bridging the Gap: Automated Steady Scaffoldings for 3D Printing [PDF]
Jérémie Dumas, Jean Hergel, Sylvain Lefebvre
Transactions on Graphics (Proceedings of SIGGRAPH) 2014

Brushes for local deposition strategies

Brushes allow to use different strategies in different parts of a model. Each brush is configured idependently, including the extruder used, the number of shells, infill density, print speed, plastic flow, etc.
image post
A brush is used to reinforce the box around the hole. Left: script. Middle: 3D model. Right: one slice revealing the stronger infill around the hole.

Implicit surfaces

Shapes from shaders, your models no longer have to look simple. Fully exploits printer resolution by avoiding tessellation.
image post
This implicit surface is computed from a distance field generated from a GLSL code (left). It defines a sphere perturbed by a noise. Two such spheres are used to produce a dual color result.


Offsets can erode or dilate even the most complex objects.
image post
Left: erosion, Middle: original, Right: dilation. Dragon by Valentine


Chained segment offsetting for ray-based solid representations [PDF]
Jonas Martinez, Samuel Hornus, Frédéric Claux, Sylvain Lefebvre
Computers & Graphics (Proceedings of SMI 2014) 2014

Tight ooze shields and maximal self-supporting cavities

Note: this feature is not yet implemented in 2.x, but is in 1.x

Our tight enclosure algorithm let us create nice ooze shields that remain close to the print at all times while being easy to remove. The same algorithm can be used to create large self-supporting cavities inside parts. Print large and fast!
image post image post
Left (3):The ooze shield tightly encloses the object while being easy to remove. Twin cats by Mankati3DPrinter Right: Kitten printed with a maximally empty cavity inside, saving large amounts of time and material (print is back-lit, filament is slightly transparent). The outer shell is a single thread thick.


Tight printable enclosures for additive manufacturing
Samuel Hornus, Sylvain Lefebvre, Jérémie Dumas and Frédéric Claux
GradiFab 2016

Better dual color prints

Note: this feature is not yet implemented in 2.x, but is in 1.x

Our clean color algorithm takes several steps towards improving multi-filament print quality. It first orients the print so as to minimize interference between nozzles, and then uses a special travel move optimizer to reduce ooze deposition.
image post
Left: Printing without any optimization, Middle: with ooze shield only (see above), Right: with azimuth optimization and optimized travel moves. This test is using the #3DBenchy benchmark.


Clean color: Improving multi-filament 3D prints [PDF]
Jean Hergel, Sylvain Lefebvre
Computer Graphics Forum (Eurographics) 2014

Quick start

Quick slicing

  • Download and install.
  • Launch IceSL-slicer from the desktop shortcut.
  • Open a STL file from the top left menu, or by pressing key '2'.
  • Choose printer and set up slicing parameters in the right bar (it opens automatically when cursor reaches the right border).
  • Click on 'Slice'. A dialog opens to ask where to save the G-code file.
  • After slicing use the sliders to navigate through layers.
  • Open the G-Code in your printer host software, print.

Quick scripting

  • Download and install.
  • Open IceSL-forge.
  • Start scripting using the editor in the left panel.
  • Whenever ready slice as described above.


IceSL modeling language is based on Lua. For instance: thumbnail s = sphere(10) emit(s) creates a sphere of radius 10 mm (millimeters). Note the emit function to spawn the primitive into the scene. In particular: thumbnail s = sphere(10) b = cube(15) emit(b) creates the box in the final scene but not the sphere.

IceSL supports difference, union and intersection: thumbnail s = sphere(10) b = cube(15) emit( difference(b,s) )

There are many, many other features, so be sure to read the documentation for all possible instructions.

Supported printers


IceSL does not produce printer-specific G-code directly. Instead it calls customizable scripts (again in lua) that translate the generic tool paths produced by IceSL into instructions for a specific device. It is thus very easy to extend IceSL to support other printers (check the gcode/ directory to see the print lua backends). We use IceSL on a regular basis on an Ultimaker 2, a Replicator1 and a Prusai3, and we included profiles for many other printers.


IceSL can output files for the B9Creator print software ('.b9j' job files). The default parameters are 50um per pixel, and 50um per layer. Simply select 'Slice for B9Creator' in the top right 'Service' menu.


IceSL can output files for the Ember printer ('.tar.gz' files). The default parameters are 50um per pixel, and 25um per layer. Simply select the 'Slice for Ember' in the top right 'Service' menu.


If you are manufacturing printers and would like us to create a profile for your printer, please contact us! You can also proceed by example, looking at the printer lua scripts in the install subdirectory gcode/.

image post

GPU requirements

Please make sure to install the latest drivers for your GPUs. This solves 90% of the cases where IceSL does not run. IceSL requires a GPU with full OpenGL 4.3 support. It has been tested on the following hardware:

  • [tested] GeForce GTX 480 / 580 / 680 / 970 / Titan
  • [tested] GeForce GT 555M
  • [tested] Intel HD 4400, 4600
  • [tested] AMD Radeon 290X


IceSL is free for non-commercial use (contact us for all other cases). The full license text is here.

Please cite our work and IceSL in your publications (paper, web page, blog, source code, etc.). If you implement features similar to those introduced in IceSL in other slicers, please also acknowledge IceSL (or the corresponding publication) as the source of inspiration. This is important for us to get support and continue our research.


  • I found a bug, have a feature request, or a model that does not print well. Who to contact?
    The best is to join our forum or to contact Sylvain.Lefebvre at inria dot fr
  • Do you provide examples?
    Yes! IceSL comes with many examples, located in the 'models' folder. On a default install this would be in C:\Program Files\Inria\IceSL\models
  • Can I output a STL?
    Yes. Select a mesh export in the top right 'Service' menu (see tooltips for details). A better mesh export is in progress. Keep in mind though that IceSL is best used to slice directly.
  • How about MacOS?
    Unfortunately, and as far as we know, there is no support for OpenGL 4.2 under MacOS and we need this to port IceSL. If OpenGL 4.2 becomes available we will work hard to port IceSL to Mac!
  • Could the produced G-Code break my printer? Despite all the care we take to avoid it, bad things could happen, yes. So be careful, monitor the print, especially the start. We never broke our printers, but we are extra careful.
  • Text editor?
    IceSL-forge now includes a script editor. IceSL-vanilla continues to monitor file changes to the Lua script file and updates the view whenever the script changes.

Contact Info

Phone: +33 3 54 95 86 53

E-mail: Sylvain Lefebvre at inria dot fr

Follow us!