Slicing at the cutting edge of research.
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.
- 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.
- Download and install.
- Open IceSL-forge.
- Start scripting using the editor in the left panel.
- Whenever ready slice as described above.
- [tested] GeForce GTX 480 / 580 / 680 / 970 / Titan
- [tested] GeForce GT 555M
- [tested] Intel HD 4400, 4600
- [tested] AMD Radeon 290X
- 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.
(*) Cavities, and multi-color optimizations are available in version 1.x only. They'll come back soon, better and more powerful.
The latest news on IceSL(2017-07-12)
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:
Still hot from the lab
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.
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.
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.
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 infillsIceSL 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 supportsIceSL 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.
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 strategiesBrushes 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.
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 surfacesShapes from shaders, your models no longer have to look simple. Fully exploits printer resolution by avoiding tessellation.
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.
OffsetsOffsets can erode or dilate even the most complex objects.
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 cavitiesOur 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!
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|
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.
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|
See also the documentation wiki!
IceSL modeling language is based on Lua. For instance:
s = sphere(10)
creates a sphere of radius 10 mm (millimeters). Note the emit function to spawn the primitive into the scene.
s = sphere(10)
b = cube(15)
creates the box in the final scene but not the sphere.
IceSL supports difference, union and intersection:
s = sphere(10)
b = cube(15)
emit( difference(b,s) )
G-Code, and more!
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/.
Quite high, but not unreasonable
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:
Free for non-commercial use
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.
Questions? Look here first.