2025.0.01
ImprovementLuciadFusion
LCD-13893
Bug fixLuciadFusion
LF-2767
lfn.filePath
.
Bug fixLuciadFusion
LCD-13894
Bug fixLuciadFusion
LF-2760
Bug fixLuciadFusion
LCD-11628
TLspShapeLayerBuilder
: fixed an issue that would cause a warning to be logged when styling an
object with both a TLspIconStyle
and a TLspParameterizedIconStyle
.
Bug fixLuciadFusion
LF-26761
Bug fixInfrastructure Standards
LCD-13909
The coordinates in the GeoJSON output of the bim.converter.[bat|sh]
commandline sample are
now 2D coordinates again instead of 3D coordinates with a zero altitude. This is more in line with the format-specific
converter samples for IFC, Binz and Revit from the previous releases, which were replaced by this commandline sample.
Note that in combination with the MinZ
and MaxZ
properties from the
GeoJSON output, you can obtain the 3D bounds of the objects.
Bug fixInfrastructure Standards
LCD-13865
lcd_binz_connector.pom
file no longer excludes the native myVRDatakitConverter libraries.
2025.0
2025.0
New featureLuciadFusion
TLcdOGC3DTilesModelDecoder
.
New featureLuciadFusion
- Added a version configuration option to generate either 1.0 or 1.1 OGC 3D Tiles for datasets with a 'Mesh' data category, such as BIM, OBJ or GLB datasets.
- OGC 3D Tiles 1.0 and 1.1 mesh datasets can now be reprocessed to change the version or compression type.
New featureLuciadFusion
PUT /api/services/{serviceId}
endpoint.
See the updated article How to configure access to services in LuciadFusion for more information.
New featureLuciadFusion
You can now configure the WFS feature types used by your WFS services, using both the LuciadFusion
Studio web application and its REST API. In the web application, you can find a new tab
Publish Info
for each WFS service, enabling you to configure the WFS feature
types for a selected service. Additionally, we have introduced new REST API endpoints that enable you to
configure the feature types programmatically:
GET /api/services/{serviceId}/products/{productId}
: Retrieve the current feature type information, included in thepublishInfo
property, for a specific WFS Service and Product.PUT /api/services/{serviceId}/products/{productId}
: Update the feature types by modifying the feature type list in thepublishInfo
property for a specified WFS Service and Product.
New featureLuciadFusion
New featureLuciadFusion
The TLcdOGC3DTilesModelEncoder
now allows specifying the OGC 3D Tiles version when encoding
3D Tiles. The version can be set using the setTileSetVersion
method, which accepts an
ELcdOGC3DTilesVersion
argument.
-
The default version is
VERSION_1_0
, which is the earlier version of the OGC 3D Tiles specification. -
Not all features of
VERSION_1_1
are used. An overview of differences between data exported with the two versions can be found in theELcdOGC3DTilesVersion
javadoc.
New featureLuciadFusion
Added support for Azure Maps, a geospatial mapping service provided by Microsoft. It offers data such as worldwide road maps and high-resolution imagery. You can decode an Azure Maps model for a desired map and visualize the resulting data in GXY and Lightspeed views.
For more details, see the Azure Maps entry in the Data Formats documentation section.
Please note that Azure Maps is introduced by Microsoft as the successor of Bing Maps. Only enterprise account customers can continue using Bing Maps for Enterprise services until June 30th, 2028. Free (Basic) account customers can no longer use Bing Maps and need to switch to Azure Maps.
New featureLuciadFusion
TLspMagnifierController
now has an additional constructor that allows the user to pass a TLspMagnifierController.OverlayShape
.
This sets the shape of the overlay used for the controller to either a circle or square.
New featureInfrastructure Standards
You can now display DGN data on a Lightspeed view with proper styling.
See TLspDGNStyler
and TLspDGNLayerFactory
for details.
The existing limitations of decoded objects and styling in GXY still apply.
New featureInfrastructure Standards
You can now display DWG and DXF data on a Lightspeed view with proper styling.
See TLspDWGStyler
and TLspDWGLayerFactory
for details.
The existing limitations of decoded objects and styling in GXY still apply.
ImprovementLuciadFusion
LF-2656
fusion.studio.configuration.defaultData.previewBackgroundColor
property in the fusion.common.yml
config file for more information.
ImprovementLuciadFusion
LCD-13696
Transaction
requests. A format for which the data model had a
TLcdShapeListAnnotation
always required a MultiGeometry
GML element
in the past. This was for example the case for database formats. For such formats, the WFS server now accepts
both single geometry types (e.g. Point
, LineString
or
Polygon
) and multi geometry types. This improves the interoperability with other WFS-T
clients, such as Hexagon's GeoMedia application.
ImprovementLuciadFusion
LCD-10696
TLcdGeoPackageModelEncoder
and TLcdGeoPackageModelEncoder
now offer support for encoding and decoding elements with a TLcdLonLatGeoBuffer
as shape.
ImprovementLuciadFusion
LF-2675
We now pick up the WKT geo-reference, part of the "user coordinate system", inside the LGSx file.
If there is no geo-reference in the file, but you know it and want to apply it, use a .prj
file next to your .lgsx
file.
Do note that the user coordinate system can only be applied to the panoramic photos, not the HSPC point cloud. This is because we expose the HSPC that is inside the LGSx file as-is directly.
If you don't want to apply the user coordinate system to the panoramas, you can set system property -Dcom.luciad.format.lgsx.useCoordSys=false
.
If you have a dataset with user coordinate system and need to apply it to both the panoramas and the point cloud, we advise to apply it on the client.
ImprovementLuciadFusion
LCD-13721
wfs.transaction.includeAutoGeneratedPrimaryKey
to true in the fusion.common.yml
config file.
ImprovementLuciadFusion
LCD-13721
TLcdPrimaryKeyAnnotation
now has
- A
isAutoGenerated()
method to determine if the primary key is autogenerated or not. When it is not known if the key is autogenerated or not,false
is returned. - A
TLcdPrimaryKeyAnnotation(TLcdDataProperty, boolean)
constructor to specify whether the key is autogenerated or not.
ImprovementLuciadFusion
wms.layerPerProduct
property in the fusion.common.yml
config file for more information.
ImprovementLuciadFusion
LCD-13685
TLcdGeoJsonModelEncoder
can now encode properties of types
java.time.Instant
and java.time.Duration
.
By default, these properties are encoded as a Unix timestamp in seconds, and a duration in seconds respectively. To
override the default behaviour, for example to encode ISO timestamps instead, you can configure a custom
TLcdFeatureMetaDataProvider
on the TLcdGeoJsonModelEncoder
.
ImprovementLuciadFusion
ImprovementLuciadFusion
TLcdTransportFactory
, you can now control the number of retry attempts
for HTTP 429 and HTTP 503 errors using the newly added methods
setRetryCount(int)
and getRetryCount()
.
ImprovementLuciadFusion
LCD-13666
TLcdGeoTIFFModelEncoder
now supports writing ALcdBasicImage
and ALcdMultilevelImage
instances having values of type double
.
ImprovementLuciadFusion
LF-2134
ImprovementLuciadFusion
LF-2363
ALfnJob
has been extended with a LastCompletionTime
property.
The property contains the last time the job completed successfully. The responses from the REST API endpoints /api/crawl-jobs
and /api/preprocess-jobs
include this new property.
This property is only available for jobs that have completed after the upgrade, since the property will be missing from existing
jobs.
ImprovementLuciadFusion
LF-2665
fusion.studio.configuration.preprocessing.threadPool.minimumSize
and fusion.studio.configuration.preprocessing.threadPool.maximumSize
.
ImprovementDatabase Connectors
LCD-13873
TLcdPostGISModelDecoder
and TLcdPostGISModelEncoder
now have support for the following geometry types:
MULTICURVE |
MULTISURFACE |
CURVEPOLYGON |
COMPOUNDCURVE |
CIRCULARSTRING |
ImprovementDatabase Connectors
LCD-13693
TLcdOracleSpatialModelDecoder
and TLcdOracleSpatialModelEncoder
are now able to handle columns of type TIMESTAMP WITH TIME ZONE
.
These columns are modeled as a TLcdDataType
with instance class java.time.ZonedDateTime
.
ImprovementDefense Standards
TLcdNITFModelDecoder#discoverDataSources
now provides two data sources.
- The first data source can be used to decode the NITF data into a georeferenced model, similar to the data source returned in the past. The resulting model can be used to visualize the data in georeferenced GXY or Lightspeed view.
- The second data source can be used to decode the NITF data into a non-georeferenced model. This model is an
ILcdModelTreeNode
with a sub-model for each NITF data segment. The resulting model can be used to visualize the data in a GXY view with a CRS:1 reference or to publish the data in a LuciadFusion WMS service that has CRS:1 reference support. This is described in the LuciadFusion article "How to set up a non-georeferenced WMS".
ImprovementDefense Standards
libjpeg-turbo
library is now used to decode JPEG images in NITF files. The use of this library fixes the handling of images that use a
YCbCr color space. Those were incorrectly displayed with red and green colors in the past.
ImprovementDefense Symbology
LF-2711
- Symbol.FrameWidth: specifies the frame width of icon symbols, expressed in pixels.
- Symbol.FrameColor: specifies the frame color of icon symbols.
- Symbol.AlternateFillColor: specifies color used to fill the part of the symbol frame, that is not covered by the fill percentage.
- Symbol.ForcedColor: overrides the standard affiliation color of a symbol
ImprovementInfrastructure Standards
ImprovementInfrastructure Standards
The TLcd3DTilesProcessorBuilder
now allows specifying the OGC 3D Tiles version when
creating the 3D Tiles processor. The version can be set using the tileSetVersion
method,
which accepts an ELcdOGC3DTilesVersion
argument.
-
The default version is
VERSION_1_0
, which is the earlier version of the OGC 3D Tiles specification. -
Not all features of
VERSION_1_1
are used. An overview of differences between data exported with the two versions can be found in theELcdOGC3DTilesVersion
javadoc.
ImprovementInfrastructure Standards
LF-2665
ForkJoinPool
on the
TLcd3DTilesProcessorBuilder
to use to perform asynchronous tasks during the preprocessing of
3D Tiles. If no ForkJoinPool
is specified, the common ForkJoinPool
will be used by default (see ForkJoinPool.commonPool()
). To configure the
ForkJoinPool
on the TLcd3DTilesProcessorBuilder
, you can use the
method TLcd3DTilesProcessorBuilder.forkJoinPool
.
Bug fixLuciadFusion
LCD-13867
TLcdOGC3DTilesModelEncoder
could fail when encoding an empty payload.
Bug fixLuciadFusion
LF-2692
GET /api/data
and GET /api/data/filter
endpoints where when filtering on filepaths
in some cases incorrect results where returned.
Bug fixLuciadFusion
ILcdModelTreeNode
. This is for example
the case when decoding an USRP dataset through its header file.
Bug fixLuciadFusion
LCD-13850
ILcdText
) geometries. Because they cannot be expressed in GeoJSON, these geometries
are now approximated by their bounding box.
Bug fixLuciadFusion
LCD-13874
start_felix.bat
script.
Bug fixAdvanced Raster Services
LCD-13875
TLcdGeospatialPDFModelDecoder#decode
left files open even after
ILcdModel#dispose
was called. As a result, decoded files could not be renamed or removed until the JVM process exited.
Bug fixDatabase Connectors
LCD-12654
Bug fixDatabase Connectors
LCD-13751
ILcdBounds
of the ILcdModel
decoded by the TLcdPostGISModelDecoder
were always two-dimensional.
This is corrected so that the dimensions of data are correctly used.
Bug fixDefense Standards
LCD-10122
Upgrade considerationLuciadFusion
LCD-13554
java.util.logging
by default.
If you haven't explicitly configured a logging framework for LuciadLightspeed yet,
and you still need to use java.util.logging
, follow the instructions in the
TLcdLoggerFactory
class javadoc to configure the desired logging framework.
Upgrade considerationLuciadFusion
libjpeg-turbo
library has been upgraded to
version 3.0.0.lcd-5, introducing support for a Linux ARM 64-bit version of
the library.
Upgrade considerationLuciadFusion
EXT_meshopt_compression
glTF extension.
Upgrade considerationLuciadFusion
The Draco library has been upgraded to version 1.5.7.lcd-6.
With this upgrade, a Linux ARM 64-bit version of this library is added, while the win32 version is removed. We also improved memory usage when decoding a Draco compressed dataset.
This library is used by the TLcdOGC3DTilesModelEncoder
and allows you to use Draco compression on 3D mesh and point cloud data.
Upgrade considerationLuciadFusion
TLcdMBTilesModelDecoder
: the Google Protobuf library used by the decoder has been updated
to version 3.25.5.
Upgrade considerationLuciadFusion
- Windows, starting from Windows 10 and Windows Server 2016
- macOS, starting from macOS 13
Upgrade considerationLuciadFusion
lib/thirdparty
directory now contains the latest SQL Server JDBC driver version 12.10.0.jre11 replacing version 7.2.1.jre8.
You might be required to add ;encrypt=true;trustServerCertificate=true;
to the url property, see the SQL Server Connecting with encryption page for more information.
Upgrade considerationLuciadFusion
Upgrade considerationLuciadFusion
Upgrade considerationLuciadFusion
ALcdWMSLayer
and its default implementation TLcdWMSLayer
.
- ALcdWMSLayer#getBoundingBox(String) allows to retrieve a bounding box for a given coordinate reference system.
- TLcdWMSLayer#addBoundingBox(String, ILcdBounds) allows to register a bounding box for a given coordinate reference system.
ALcdWMSLayer
need to implement the new getBoundingBox(String)
but can decide to return either a bounding box for the given coordinate reference system, or return an empty optional.
Upgrade considerationLuciadFusion
The class TLcdBingMapsTransportFactory
which was deprecated
since 2013 has been removed. The features of the deprecated class like caching etc.
are now available through the TLcdTransportFactory
class.
If you are using the TLcdBingMapsTransportFactory
class, you
can replace it with the following code:
TLcdTransportFactory transportFactory = new TLcdTransportFactory(); transportFactory.setCaching(true); transportFactory.setMaxCacheEntries(1000); transportFactory.setRetryCount(3);
Upgrade considerationLuciadFusion
LCD-13666, LCD-13731
Group ID | Artifact ID | Old Version | New Version |
---|---|---|---|
javax.media | jai | 1.1.4+8-lcd | 1.1.4+9-lcd |
com.sun.media | jai_imageio | 1.2+23-lcd | 1.2+25-lcd |
Upgrade considerationLuciadFusion
Group ID | Artifact ID | Old Version | New Version |
---|---|---|---|
ch.qos.logback | logback-classic | 1.4.14 | 1.5.18 |
ch.qos.logback | logback-core | 1.4.14 | 1.5.18 |
com.fasterxml.jackson.dataformat | jackson-dataformat-yaml | 2.15.4 | 2.18.4 |
com.fasterxml.jackson.module | jackson-module-parameter-names | 2.15.4 | 2.18.4 |
com.microsoft.sqlserver | mssql-jdbc | 7.2.1.jre8 | 12.10.0.jre11 |
com.zaxxer | HikariCP | 5.0.1 | 5.1.0 |
commons-beanutils | commons-beanutils | 1.9.3 | 1.11.0 |
io.micrometer | micrometer-commons | 1.12.11 | 1.14.7 |
io.micrometer | micrometer-core | 1.12.11 | 1.14.7 |
io.micrometer | micrometer-jakarta9 | 1.12.11 | 1.14.7 |
io.micrometer | micrometer-observation | 1.12.11 | 1.14.7 |
io.swagger.core.v3 | swagger-annotations-jakarta | 2.2.19 | 2.2.27 |
io.swagger.core.v3 | swagger-core-jakarta | 2.2.19 | 2.2.27 |
io.swagger.core.v3 | swagger-models-jakarta | 2.2.19 | 2.2.27 |
org.apache.logging.log4j | log4j-api | 2.21.1 | 2.24.3 |
org.apache.logging.log4j | log4j-to-slf4j | 2.21.1 | 2.24.3 |
org.apache.tomcat.embed | tomcat-embed-el | 10.1.31 | 10.1.41 |
org.freemarker | freemarker | 2.3.33 | 2.3.34 |
org.hdrhistogram | HdrHistogram | 2.1.12 | 2.2.2 |
org.hibernate.validator | hibernate-validator | 8.0.1.Final | 8.0.2.Final |
org.slf4j | jcl-over-slf4j | 2.0.16 | 2.0.17 |
org.slf4j | jul-to-slf4j | 2.0.16 | 2.0.17 |
org.slf4j | log4j-over-slf4j | 2.0.16 | 2.0.17 |
org.slf4j | slf4j-api | 2.0.16 | 2.0.17 |
org.springdoc | springdoc-openapi-starter-common | 2.3.0 | 2.8.3 |
org.springdoc | springdoc-openapi-starter-webmvc-api | 2.3.0 | 2.8.3 |
org.springdoc | springdoc-openapi-starter-webmvc-ui | 2.3.0 | 2.8.3 |
org.springframework | spring-aop | 6.1.14 | 6.2.7 |
org.springframework | spring-beans | 6.1.14 | 6.2.7 |
org.springframework | spring-context | 6.1.14 | 6.2.7 |
org.springframework | spring-context-support | 6.1.14 | 6.2.7 |
org.springframework | spring-core | 6.1.14 | 6.2.7 |
org.springframework | spring-expression | 6.1.14 | 6.2.7 |
org.springframework | spring-jdbc | 6.1.14 | 6.2.7 |
org.springframework | spring-messaging | 6.1.14 | 6.2.7 |
org.springframework | spring-tx | 6.1.14 | 6.2.7 |
org.springframework | spring-web | 6.1.14 | 6.2.7 |
org.springframework | spring-webmvc | 6.1.14 | 6.2.7 |
org.springframework | spring-websocket | 6.1.14 | 6.2.7 |
org.springframework.boot | spring-boot | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-actuator | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-actuator-autoconfigure | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-autoconfigure | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-configuration-processor | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-actuator | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-freemarker | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-jdbc | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-json | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-logging | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-security | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-validation | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-web | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-websocket | 3.2.11 | 3.4.6 |
org.springframework.ldap | spring-ldap-core | 3.2.7 | 3.2.12 |
org.springframework.security | spring-security-config | 6.2.7 | 6.4.6 |
org.springframework.security | spring-security-core | 6.2.7 | 6.4.6 |
org.springframework.security | spring-security-crypto | 6.2.7 | 6.4.6 |
org.springframework.security | spring-security-ldap | 6.2.7 | 6.4.6 |
org.springframework.security | spring-security-oauth2-core | 6.2.7 | 6.4.6 |
org.springframework.security | spring-security-oauth2-resource-server | 6.2.7 | 6.4.6 |
org.springframework.security | spring-security-web | 6.2.7 | 6.4.6 |
org.webjars | swagger-ui | 5.10.3 | 5.18.2 |
org.yaml | snakeyaml | 2.2 | 2.3 |
The following dependencies have been added:
Group ID | Artifact ID | Version |
---|---|---|
org.jspecify | jspecify | 1.0.0 |
org.webjars | webjars-locator-lite | 1.0.1 |
The following dependencies have been removed:
Group ID | Artifact ID | Version |
---|---|---|
com.fasterxml.jackson.datatype | jackson-datatype-jdk8 | 2.15.4 |
com.fasterxml.jackson.datatype | jackson-datatype-jsr310 | 2.15.4 |
The following sample dependencies have been updated:
Group ID | Artifact ID | Old Version | New Version |
---|---|---|---|
org.eclipse.jetty | jetty-alpn-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-alpn-conscrypt-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-alpn-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-ee | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-http | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-io | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-jndi | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-plus | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-security | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-session | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-util | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-xml | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-annotations | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-plus | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-servlet | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-webapp | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jakarta-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jakarta-common | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jakarta-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jetty-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-servlet | 12.0.9 | 12.0.21 |
org.eclipse.jetty.http2 | jetty-http2-common | 12.0.9 | 12.0.21 |
org.eclipse.jetty.http2 | jetty-http2-hpack | 12.0.9 | 12.0.21 |
org.eclipse.jetty.http2 | jetty-http2-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-core-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-core-common | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-core-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-jetty-api | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-jetty-common | 12.0.9 | 12.0.21 |
org.ow2.asm | asm | 9.7 | 9.7.1 |
org.ow2.asm | asm-commons | 9.7 | 9.7.1 |
org.ow2.asm | asm-tree | 9.7 | 9.7.1 |
The following sample dependencies have been removed:
Group ID | Artifact ID | Version |
---|---|---|
org.slf4j | slf4j-api | 2.0.12 |
Upgrade considerationLuciadFusion
Group ID | Artifact ID | Old Version | New Version |
---|---|---|---|
com.fasterxml.jackson.core | jackson-annotations | 2.15.4 | 2.18.4 |
com.fasterxml.jackson.core | jackson-core | 2.15.4 | 2.18.4 |
com.fasterxml.jackson.core | jackson-databind | 2.15.4 | 2.18.4 |
com.google.protobuf | protobuf-java | 3.25.3 | 3.25.5 |
com.microsoft.sqlserver | mssql-jdbc | 7.2.1.jre8 | 12.10.0.jre11 |
org.slf4j | slf4j-api | 2.0.16 | 2.0.17 |
The following dependencies have been added:
Group ID | Artifact ID | Version |
---|---|---|
com.fasterxml.jackson.datatype | jackson-datatype-jdk8 | 2.18.4 |
com.fasterxml.jackson.datatype | jackson-datatype-jsr310 | 2.18.4 |
org.apache.httpcomponents.client5 | httpclient5 | 5.4.3 |
org.apache.httpcomponents.client5 | httpclient5-cache | 5.4.3 |
org.apache.httpcomponents.core5 | httpcore5 | 5.3.4 |
org.apache.httpcomponents.core5 | httpcore5-h2 | 5.3.4 |
org.lwjgl | lwjgl-meshoptimizer | 3.3.3 |
The following dependencies have been removed:
Group ID | Artifact ID | Version |
---|---|---|
org.apache.httpcomponents | httpclient-cache | 4.5.13 |
org.apache.httpcomponents | httpmime | 4.5.13 |
The following sample dependencies have been updated:
Group ID | Artifact ID | Old Version | New Version |
---|---|---|---|
ch.qos.logback | logback-classic | 1.4.14 | 1.5.18 |
ch.qos.logback | logback-core | 1.4.14 | 1.5.18 |
com.fasterxml.jackson.datatype | jackson-datatype-jdk8 | 2.15.4 | 2.18.4 |
com.fasterxml.jackson.datatype | jackson-datatype-jsr310 | 2.15.4 | 2.18.4 |
com.fasterxml.jackson.module | jackson-module-parameter-names | 2.15.4 | 2.18.4 |
com.zaxxer | HikariCP | 5.0.1 | 5.1.0 |
io.micrometer | micrometer-commons | 1.12.11 | 1.14.7 |
io.micrometer | micrometer-observation | 1.12.11 | 1.14.7 |
org.apache.logging.log4j | log4j-api | 2.21.1 | 2.24.3 |
org.apache.logging.log4j | log4j-to-slf4j | 2.21.1 | 2.24.3 |
org.apache.tomcat.embed | tomcat-embed-el | 10.1.31 | 10.1.41 |
org.eclipse.jetty | jetty-alpn-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-ee | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-http | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-io | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-jndi | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-plus | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-security | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-session | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-util | 12.0.9 | 12.0.21 |
org.eclipse.jetty | jetty-xml | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-annotations | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-plus | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-servlet | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10 | jetty-ee10-webapp | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jakarta-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jakarta-common | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jakarta-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-jetty-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.ee10.websocket | jetty-ee10-websocket-servlet | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-core-client | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-core-common | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-core-server | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-jetty-api | 12.0.9 | 12.0.21 |
org.eclipse.jetty.websocket | jetty-websocket-jetty-common | 12.0.9 | 12.0.21 |
org.ow2.asm | asm | 9.7 | 9.7.1 |
org.ow2.asm | asm-commons | 9.7 | 9.7.1 |
org.ow2.asm | asm-tree | 9.7 | 9.7.1 |
org.slf4j | jul-to-slf4j | 2.0.16 | 2.0.17 |
org.springframework | spring-aop | 6.1.14 | 6.2.7 |
org.springframework | spring-beans | 6.1.14 | 6.2.7 |
org.springframework | spring-context | 6.1.14 | 6.2.7 |
org.springframework | spring-core | 6.1.14 | 6.2.7 |
org.springframework | spring-expression | 6.1.14 | 6.2.7 |
org.springframework | spring-web | 6.1.14 | 6.2.7 |
org.springframework | spring-webmvc | 6.1.14 | 6.2.7 |
org.springframework.boot | spring-boot | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-autoconfigure | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-json | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-logging | 3.2.11 | 3.4.6 |
org.springframework.boot | spring-boot-starter-web | 3.2.11 | 3.4.6 |
org.yaml | snakeyaml | 2.2 | 2.3 |
The following sample dependencies have been added:
Group ID | Artifact ID | Version |
---|---|---|
commons-logging | commons-logging | 1.2 |
org.apache.httpcomponents | httpclient | 4.5.13 |
org.apache.httpcomponents | httpcore | 4.4.13 |
The following sample dependencies have been removed:
Group ID | Artifact ID | Version |
---|---|---|
com.fasterxml.jackson.core | jackson-annotations | 2.15.4 |
org.slf4j | slf4j-api | 2.0.12 |
Upgrade considerationLuciadFusion
LCD-13019
wellKnownName
of a mark
graphic.
This means that TLcdSLDMark#getWellKnownName()
now returns a TLcdSLDParameterValue
instead of a String.
You can still retrieve any text content from that TLcdSLDParameterValue
.
Upgrade considerationLuciadFusion
lib
directory
to the lib/thirdparty
directory, so that they can be easily distinguished from the product libraries.
If you have custom startup scripts, you'll need to add both directories to the classpath.
Upgrade considerationAdvanced Raster Services
LCD-13700
The TLcdMrSIDModelDecoder#canDecodeSource
method no longer accepts
.sdw
files. The main entry point for a MrSID data set is the
.sid
file, as indicated by the class documentation of
TLcdMrSIDModelDecoder
. The .sdw
file is only a supporting file.
This fix avoids that a MrSID file that gets added to LuciadFusion results in two similar data items.
Users that used the .sdw
file as the entry point of a data set can simply
switch to the .sid
file.
Upgrade considerationDatabase Connectors
;encrypt=true;trustServerCertificate=true;
to the url property, see the SQL Server Connecting with encryption page for more information.
Upgrade considerationDatabase Connectors
TLcdPostGISModelDecoder
and TLcdPostGISModelEncoder
.
This version is no longer supported by the PostgreSQL Global Development Group, see the PostgreSQL Versioning Policy page.
It's advisable to upgrade to a newer version of PostgreSQL if you are still using version 12.
Upgrade considerationDatabase Connectors
TLcdMSSQLModelDecoder
and TLcdMSSQLModelEncoder
.
This version is no longer supported by Microsoft, see the SQL Server 2014 lifecycle page.
It's advisable to upgrade to a newer version of SQL Server if you are still using version 2014.
Upgrade considerationDefense Standards
TLcdNITFUncompressedImageDecoder
has been removed.TLcdNITFModelDecoder#decodeImageBounds
has been removed.TLcdNITFModelDecoder#decodeModelReference
has been removed.TLcdNITFTextSegment
now has a copy constructor.TLcdNITFModelDescriptor#addTextSegment
has been added.
TLcdNITFModelDecoder
.
Upgrade considerationInfrastructure Standards
The names of the DWG native jar files have been revised to indicate the library version update from 24.8 to 26.2. Version 26.2 aligns with the latest release of the OpenDesignAlliance's Drawings SDK, version 2026.2.
The available DWG native jar files, at the time of writing, are:
libdwg-26.2.lcd-1-native.linux64.jar
libdwg-26.2.lcd-1-native.linux64_arm.jar
libdwg-26.2.lcd-1-native.macos_64.jar
libdwg-26.2.lcd-1-native.macos_64_arm.jar
libdwg-26.2.lcd-1-native.win64.jar
Upgrade considerationInfrastructure Standards
The names of the DGN native jar files have been revised to indicate the library version update from 24.8 to 26.2. Version 26.2 aligns with the latest release of the OpenDesignAlliance's Drawings SDK, version 2026.2.
The available DGN native jar files, at the time of writing, are:
libdgn-26.2.lcd-1-native.linux64.jar
libdgn-26.2.lcd-1-native.linux64_arm.jar
libdgn-26.2.lcd-1-native.macos_64.jar
libdgn-26.2.lcd-1-native.macos_64_arm.jar
libdgn-26.2.lcd-1-native.win64.jar
Upgrade considerationInfrastructure Standards
The TLcdIFCModelDecoder
returns a feature data model with an ILcdDataObject
. The TLcdDataModel
of that ILcdDataObject
has been changed to align it with the feature data models of other BIM formats. The data model now has:
-
A new property with the name
Metadata
. This property is aMap
and contains the non-categorized metadata of the object as found in the IFC dataset. In previous versions, theILcdDataObject
itself contained this metadata. -
A new property with the name
MetadataGroups
. This property is aMap
and contains the metadata within the differentIfcPropertySets
linked to the object in the IFC dataset. In previous versions, an array ofIfcPropertySet
elements contained this information.
The following image shows an illustration of the new TLcdDataModel
(on the right) compared
to the old TLcdDataModel
(on the left).

Upgrade considerationInfrastructure Standards
The geometry model returned by the TLcdBinzModelDecoder
no longer contains the metadata
of the objects. Only the FeatureID is retained in the geometry model. This change has an impact on the OGC 3D Tiles generation
process: it now stores only the FeatureID inside the batch table. Depending on the amount of metadata inside
the Binz dataset, this can lead to a significant reduction in the size of the OGC 3D Tiles output.
The metadata of the objects is still available in the feature data model. The FeatureID in the geometry model can be used to match the objects in the geometry model with the objects in the features model. If you have code that reads out the metadata directly from the OGC 3D Tiles data, you must change this code to read this metadata from the feature data model. The Visualize BIM data article explains this in more detail.
Upgrade considerationInfrastructure Standards
LCD-13711
TLcd3DTilesProcessorBuilder
: the cache directory is now placed under the system-wide
temporary files directory. This allows the 3D Tiles Processing Engine to be used when the installation directory
is not writable.
Upgrade considerationInfrastructure Standards
The TLcdBinzModelDecoder
returns a feature data model with elements implementing the ILcdDataObject
interface.
The TLcdDataModel
of these elements has been changed to align it with the feature data models of other BIM formats.
These changes were made:
-
Added a property with the name
Metadata
. This new property is aMap
and contains the non-categorized metadata of the object as found in the Binz dataset. In previous versions, theILcdDataObject
itself contained this metadata. -
Removed the
RenderId
property. This property was used to store the original FeatureID of the feature in the Binz dataset. Instead, aFeatureIDOffset
property is stored in the root feature of the model. You can use this property to calculate the original FeatureID by subtracting this offset from theFeatureID
property of the object. -
The features in the model no longer implement the
ILcdExtrudedShape
interface. Instead, this information can be derived from theBounds
,MinZ
andMaxZ
properties.
You must change code that reads out this Binz metadata to use this new structure. This snippet shows
a code example of how to read the moniker
Binz property in a previous version of the model:
// will no longer work in 2025.0
TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
String moniker = (String) feature.getValue("moniker");
To work with the new model, change the code to retrieve the Metadata
property first.
This property is a Map
containing the Binz metadata, like the moniker
.
This snippet shows how to read this moniker
property in the new version of the model:
TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
Map<String, Object> metadata = (Map<String, Object>) feature.getValue("Metadata");
String moniker = (String) metadata.get("moniker");
The RenderId
property is no longer available on the features in the model. Instead, you can
now calculate it by subtracting the FeatureIDOffset
from the FeatureID
.
This snippet shows a code example of how to accomplish that:
TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
// Get some feature
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
// Get the root feature
Integer rootFeatureId = ((List<Integer>) feature.getValue("AncestorPath")).get(0);
ILcdDataObject rootFeature = (ILcdDataObject) featuresModel.query(...);
// Calculate the RenderID
Integer featureId = (Integer) feature.getValue("FeatureID");
Integer featureIdOffset = (Integer) rootFeature.getValue("FeatureIDOffset");
Integer renderId = featureID - featureIdOffset;
Casting a Binz feature to an ILcdExtrudedShape
now results in a ClassCastException
because the feature no longer implements this interface. This snippet shows a code example of how to convert a
Binz feature into an ILcdExtrudedShape
in the new version of the model:
TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
ILcdExtrudedShape shape = new TLcdExtrudedShape(ALcdShape.fromDomainObject(feature),
(Double) feature.getValue("MinZ"),
(Double) feature.getValue("MaxZ"));
Upgrade considerationInfrastructure Standards
TLcdRevitModelDecoder
and the
TLcdNWDModelDecoder
on this platform.