2026.1.02

ImprovementLuciadLightspeed

LCD-8736, LCD-14942
The TLcdKML22ModelDecoder now provides improved compatibility with KML files that contain incorrectly formatted coordinates. It accepts a superfluous separator in front of a coordinate tuple, and treats Unicode whitespace such as a no-break space as a separator between tuples. Previously such a coordinates element lost all of its coordinates, which left the geometry out of the map or placed a Point at (0,0), with only a warning in the log to indicate the problem.

ImprovementOGC Server

LCD-14961
The WMS and WMTS services no longer query the model of a layer again to paint the labels they just placed.

ImprovementOGC Server

LCD-14932
The WCS server class com.luciad.ogc.wcs.ALcdOGCWCSCommandDispatcherFactory now allows to configure additional request parameters that should be taken into account for the key of cached WCS coverage tiles.

ImprovementAviation Standards

LCD-14950, LCD-14214
The model decoder class TLcdAIXM51ModelDecoder now supports decoding an individual AIXM 5.1(.1) time slice, through the new method decodeTimeSlice. This method decodes a data source that contains a time slice as its root element, as well as a data source whose root element is an aixm:timeSlice property element containing the time slice. This eases working with AIXM 5.1(.1) time slices that are delivered without a surrounding feature or message, as is the case for some data providers.

ImprovementAviation Standards

LCD-14937
The DAFIFT decoder TLcdDAFIFTHelipadDecoder has been made more robust when handling helipad records with missing low- and high-end positions. In such cases, the decoder now falls back to a single-point position, consistent with the existing behavior for short helipads (smaller than 500 feet).

ImprovementAviation Standards

LCD-14937
The DAFIF(T) decoder TLcdDAFIFModelDecoder now supports decoding DAFIFT 8.1 datasets, in addition to the existing DAFIF 7 and DAFIFT 8.0 support. To enable this, several new DAFIFT 8.1 properties have been introduced, as listed below. Refer to the corresponding Javadoc for details on their semantics and usage.

Additionally, a new runway surface type AM2 has been added to TLcdRunwaySurfaceType, representing a surface type consisting of metal planking.

ImprovementDefense Symbology

LCD-14917

The display names of the ELcdMS2525Standard enum values have been updates.

ELcdMS2525bStandard value Old display name New display name
MIL_STD_2525b MIL-STD 2525b MIL-STD-2525B
MIL_STD_2525c MIL-STD 2525c MIL-STD-2525C
MIL_STD_2525d MIL-STD 2525d MIL-STD-2525D

Bug fixLuciadLightspeed

LCD-14724
Opening a SQLite or SpatiaLite database could intermittently fail with a "database is locked" error when the database was accessed concurrently. This has been fixed.

Bug fixLuciadLightspeed

LCD-14948
The GXY rectification sample (samples.gxy.rectification) lost its tie points for an image without a camera model, such as a plain PNG image: they were not shown in the map view, and new tie points were ignored. The sample now orthorectifies such an image only when the user enters the sensor parameters, which initially place the sensor above the center of the image. The map view of the sample now also has projection controls.

Bug fixLuciadLightspeed

LCD-14933
Resolved an issue where the TLcdOGC3DTilesModelEncoder and TLcd3DTilesProcessorBuilder would sometimes generate B3DM or GLB files that don't adhere to the byte alignment requirements in the glTF specification.

Bug fixLuciadLightspeed

LCD-14969
Fixed an issue where a transformation between two TLcdTopocentricReference instances with the same geodetic datum but different origins returned incorrect values.

Bug fixLucy (LuciadLightspeed)

LUCY-5085
TLcyVerticalViewAddOn: a newly created vertical view did not show the profile of a line or buffer that was already selected on the map. The object had to be deselected and selected again. This has been fixed.

Bug fixLuciadLightspeed

LCD-13459
Cloning a TLcdKML22MultiGeometry no longer fails with a StackOverflowError. This affected both clone() and clone(java.util.Map), and therefore any operation that copies a KML model containing a MultiGeometry.

Bug fixAviation Standards

LCD-14938
Improved the rendering of AIXM 5.1(.1) SafeAltitudeArea features in Lightspeed views:
  • Sectors that define their shape using a circle sector definition instead of an extent are now painted as arc bands, measured from the center point of the area. Previously, only sectors with an extent were painted.
  • Sectors are now painted at the lower limit of their circle sector definition, which represents the altitude to stay above. The upper limit is used when no lower limit is available. Previously, only the upper limit was taken into account, causing sectors with only a lower limit to be painted on the terrain.
  • The center point from which the sectors of an area are measured is now resolved for all feature types that AIXM 5.1(.1) allows an area to reference: a designated point, a navaid, a runway center line point, a touch down / lift off area, and an airport. The position is taken from the time slice that the time slice provider of the referenced feature returns.
  • An area is now painted and labeled for a single time slice: the one returned by its time slice provider (TLcdAIXM51Feature#getDefaultTimeSliceProvider()), which represents the state of the area at the displayed time. Previously, all time slices of an area were painted and labeled, regardless of that provider, causing an area with multiple time slices to be drawn multiple times.
  • Areas no longer lose their radius and angle labels. These labels are produced once per area, to avoid duplicates on an edge that two sectors share. Previously, the label texts that had been produced were remembered for the lifetime of the styler, causing an area to lose these labels when the same text had already been produced for another area or during an earlier styling pass.
  • Sectors with a significant obstacle or a radius that is unknown, which AIXM 5.1(.1) expresses as a nil element, and sectors without a circle sector definition, no longer fail to paint with a NullPointerException. They are now painted using the information that is available.

Bug fixInfrastructure Standards

LCD-14803
Fixed a bug in TLcdDWGModelDecoder that caused HATCH boundaries that are not closed to be closed. These boundaries are AutoCAD-internal objects and are now left out of the decoded model.

Bug fixInfrastructure Standards

LCD-14802
Fixed a bug in TLcdDWGModelDecoder that caused the holes in HATCH objects to be decoded as separate filled shapes instead of being cut out of the surface.

Bug fixInfrastructure Standards

LCD-14800
Fixed a bug in TLcdDWGModelDecoder that caused HATCH objects with a hatch pattern to be painted as opaque solid fills. Hatch patterns are not supported, so such hatches are now painted with a translucent fill.

Bug fixInfrastructure Standards

LCD-14799
Fixed a bug in TLcdDWGModelDecoder that caused entities with an inverted normal vector, such as some LWPOLYLINE objects, to be mirrored and placed at the wrong location.

Bug fixMaritime Standards

LCD-14966
S-101 exchange sets whose catalogue declares a product identifier with a version, such as INT.IHO.S-101.1.5.0, are now decoded correctly. Previously only S-101 and INT.IHO.S-101 were recognized.

Security fixLuciadLightspeed

LCD-14959

The following dependencies have been upgraded:

Group ID Artifact ID Old Version New Version CVEs
org.eclipse.jetty jetty-alpn-client 12.1.12 12.1.14
org.eclipse.jetty jetty-annotations 12.1.12 12.1.14
org.eclipse.jetty jetty-client 12.1.12 12.1.14 CVE-2026-77711
CVE-2026-76184
CVE-2026-19864
org.eclipse.jetty jetty-http 12.1.12 12.1.14
org.eclipse.jetty jetty-io 12.1.12 12.1.14
org.eclipse.jetty jetty-plus 12.1.12 12.1.14
org.eclipse.jetty jetty-security 12.1.12 12.1.14 CVE-2026-19863
org.eclipse.jetty jetty-server 12.1.12 12.1.14
org.eclipse.jetty jetty-session 12.1.12 12.1.14
org.eclipse.jetty jetty-util 12.1.12 12.1.14
org.eclipse.jetty jetty-xml 12.1.12 12.1.14
org.eclipse.jetty.compression jetty-compression-common 12.1.12 12.1.14
org.eclipse.jetty.compression jetty-compression-gzip 12.1.12 12.1.14
org.eclipse.jetty.compression jetty-compression-server 12.1.12 12.1.14
org.eclipse.jetty.ee jetty-ee-webapp 12.1.12 12.1.14
org.eclipse.jetty.ee11 jetty-ee11-annotations 12.1.12 12.1.14
org.eclipse.jetty.ee11 jetty-ee11-plus 12.1.12 12.1.14
org.eclipse.jetty.ee11 jetty-ee11-servlet 12.1.12 12.1.14
org.eclipse.jetty.ee11 jetty-ee11-webapp 12.1.12 12.1.14
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jakarta-client 12.1.12 12.1.14
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jakarta-common 12.1.12 12.1.14
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jakarta-server 12.1.12 12.1.14
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jetty-server 12.1.12 12.1.14
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-servlet 12.1.12 12.1.14
org.eclipse.jetty.websocket jetty-websocket-core-client 12.1.12 12.1.14
org.eclipse.jetty.websocket jetty-websocket-core-common 12.1.12 12.1.14
org.eclipse.jetty.websocket jetty-websocket-core-server 12.1.12 12.1.14
org.eclipse.jetty.websocket jetty-websocket-jetty-api 12.1.12 12.1.14
org.eclipse.jetty.websocket jetty-websocket-jetty-common 12.1.12 12.1.14
org.eclipse.jetty.websocket jetty-websocket-jetty-server 12.1.12 12.1.14

Security fixLuciadLightspeed

LCD-14955

The following dependencies have been upgraded:

Group ID Artifact ID Old Version New Version CVEs
ch.qos.logback logback-classic 1.6.4 1.6.5 CVE-2026-104721
ch.qos.logback logback-core 1.6.4 1.6.5

Security fixLuciadLightspeed

LCD-14952
The following dependencies have been upgraded:
Group ID Artifact ID Old Version New Version
org.postgresql postgresql 42.7.13 42.7.14

The driver now refuses a connection whose requireAuth property excludes every authentication method, and rejects an empty requireAuth value. Replace such a value with the methods your server uses, for example requireAuth=scram-sha-256.

CVE-2026-107314, CVE-2026-107315

Security fixAdvanced Raster Connectors

LCD-14944
The openssl library included in the GDAL native libraries has been updated to version 3.5.9 to address security vulnerabilities.
CVE-2026-35189, CVE-2026-35191, CVE-2026-42772, CVE-2026-54872, CVE-2026-54873, CVE-2026-54875, CVE-2026-72897, CVE-2026-75804, CVE-2026-75805, CVE-2026-75806, CVE-2026-77696, CVE-2026-84782, CVE-2026-84784

Security fixMaritime Standards

LCD-14949
The openssl library included in the native S-101 libraries has been updated to version 3.5.9 to address security vulnerabilities.
CVE-2026-35189, CVE-2026-35191, CVE-2026-42772, CVE-2026-54872, CVE-2026-54873, CVE-2026-54875, CVE-2026-72897, CVE-2026-75804, CVE-2026-75805, CVE-2026-75806, CVE-2026-77696, CVE-2026-84782, CVE-2026-84784

2026.1

2026.1.01

ImprovementLuciadLightspeed

LCD-14894
The OGC 3D Tiles decoder can now decode payloads that use inline base64 encoded data. While this is an inefficient usage of the format, this type of data might be created by older or simpler OGC 3D Tiles encoders.

ImprovementLuciadLightspeed

LCD-14864
closestPointOnShape now also accepts ILcdShapeList and ILcdComplexPolygon shapes, like closestPointsBetweenShapes: they are unwrapped, and the closest point over all of their parts is returned. This applies to all variants: TLcdEllipsoidUtil, TLcdSphereUtil, TLcdCartesian, TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil.

ImprovementLuciadLightspeed

LCD-14864
The new method closestPointsBetweenShapes computes the shortest distance between two arbitrary shapes and returns the connecting segment(s) that realize it. Supported shapes are ILcdPoint, ILcdCircle, ILcdPolyline and ILcdPolygon, with ILcdShapeList and ILcdComplexPolygon unwrapped automatically. It is available on TLcdEllipsoidUtil, TLcdSphereUtil, TLcdCartesian, TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil, each with and without explicit tolerance parameters, taking a sphere radius or an ellipsoid, and returning meters (coordinate units for TLcdCartesian).

ImprovementLuciadLightspeed

LCD-14872
TLcdSphereUtil.closestPointOnShape and TLcdSphereRhumblineUtil.closestPointOnShape now have overloads that take a sphere radius and return the shortest distance in meters, measured on a sphere of that radius. Each is offered with and without explicit tolerance parameters. The existing overloads that do not take a radius are now deprecated.

ImprovementLuciadLightspeed

LCD-14863
closestPointOnShape now also accepts an ILcdPoint as the shape argument, returning the point-to-point distance.

ImprovementLuciadLightspeed

LCD-14863
The rhumb variants TLcdEllipsoidRhumblineUtil.closestPointOnShape and TLcdSphereRhumblineUtil.closestPointOnShape now also accept geodesic-interpolated ILcdPolyline and ILcdPolygon instances, returning the shortest rhumb distance to the geodesic shape. Previously only rhumb-interpolated polylines and polygons were supported. This is backed by the new methods TLcdEllipsoidUtil.closestPointOnGeodesicRhumb and TLcdSphereUtil.closestPointOnGeodesicRhumb.

ImprovementLuciadLightspeed

LCD-14863
closestPointOnShape now also accepts ILcdCircle shapes, across all variants: TLcdEllipsoidUtil, TLcdSphereUtil, TLcdCartesian, TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil.

ImprovementAdvanced Raster Connectors

LCD-14895
The TLcdGDALModelDecoder now supports a model reference decoder priority, like the TLcdGeoTIFFModelDecoder, TLcdLASModelDecoder and TLcdE57ModelDecoder. Set the system property com.luciad.format.gdal.TLcdGDALModelDecoder.referenceDecoderPriority to EXTERNAL_FIRST to let an external reference file (.prj, .ref or .epsg) next to the data file override the reference provided by GDAL. The default is EMBEDDED_FIRST.

This is useful when the embedded reference is incorrect or incomplete. For example, GDAL decodes SRTM HGT (*.hgt) data using WGS 84 (EPSG:4326), which does not include a vertical reference, even though the elevation values themselves may be relative to a geoid such as EGM96.

ImprovementAdvanced Raster Connectors

LCD-14916
Improved the performance of the TLcdLuciadPanoramaModelEncoder calculation of cubemap images: depending on the input datasets, conversion can be up to 2 times faster than before.

ImprovementAviation Standards

LCD-14882
TLcdAIXMProcedureHandler now decodes more information about the legs of a SID, STAR or IAP. The following properties have been added to TLcdAIXMProcedureLegDataProperties and ILcdAIXMProcedureLegFeature:
  • VERTICAL_ANGLE: the vertical path angle that is published for the leg, in degrees.
  • SPEED_LIMIT: the speed limit of the leg, as an ILcdISO19103Measure with the unit it is published in.
  • SPEED_REFERENCE: the reference the speed limit applies to, such as indicated air speed, as a TLcdProcedureLegSpeedReference.
  • BANK_ANGLE: the bank angle that is recommended for the leg, in degrees.
  • ATC_REPORTING: the type of position report that an ATC unit requires at the leg, as a TLcdProcedureLegATCReporting.
  • NAVIGATION_SYSTEM_TYPE and NAVIGATION_SYSTEM_IDENTIFIER: the navigation or radar system that the leg is to be flown on, for example a GNSS or an ILS.

ImprovementDefense Symbology

LCD-14839, LCD-14848
The APP-6E Network control measure symbols are now rendered with rounded corners. Additionally, the uniqueDesignation and additionalInformation modifier labels are now rendered with a surrounding text box.

ImprovementDefense Symbology

LCD-14827
The positioning of the hostile (ENY) modifier has been improved for the Direction of Movement symbols.

ImprovementDefense Symbology

LCD-14896
Fixed the dimension icon for the MIL-STD-2525C Signals Intelligence Space track Symbols (4.X.1). They now have a correct black filled top, instead of a thick bordered unfilled top.

ImprovementDefense Symbology

LCD-14887
Fixed the placement of the headquarters and task force indicators for the MIL-STD-2525C and D and for the APP-6B, C and D "Unknown" Symbols (1.X) with defined affiliations. These indicators are now positioned against the symbol where they used to be positioned at an offset of the symbol.

ImprovementDefense Symbology

LCD-14845
Improved the rendering of Axis of Advance - Main Attack symbols at small scales.

ImprovementDefense Symbology

LCD-14908

It is now possible to configure the APP-6A and APP-6B "Antitank Ditch" symbols to be painted using the "Under Construction" stroke pattern. To paint these symbols using the "Under Construction" stroke pattern, set the ILcdAPP6ACoded.sTypeOfEquipment modifier to "U" or "Under Construction".

ImprovementDefense Symbology

LCD-14909

It is now possible to configure the APP-6A and APP-6B "Biological and Chemical Attack, Release Event" symbols to be painted using the "Chemical" icon. To paint these symbols using the "Chemical" icon, set the ILcdAPP6ACoded.sTypeOfEquipment modifier to "C" or "Chemical".

ImprovementInfrastructure Standards

LCD-14885
TLcd3DTilesProcessorBuilder: Increase the support for large JPEG textures. In some cases these textures couldn't be handled by libjpeg-turbo, we now fall back to Java Image I/O when needed.

ImprovementInfrastructure Standards

LCD-14880
The TLcdNWDModelDecoder and TLcdRevitModelDecoder use considerably less memory when decoding large datasets.

ImprovementTiling Engine

LF-2932
The TLfnPointCloudPreprocessor and LuciadFusion can now combine multiple non-georefenced point clouds into a single service. This is particularly useful for non-georeferenced E57 files, which can combine multiple related scans in one file.

Bug fixLuciadLightspeed

LCD-14875, LCD-14936
The TLcdOGC3DTilesModelDecoder and the glTF decoding now ignore unknown, non-standard properties in the glTF content instead of failing to decode the tile. Such properties are written by some exporters, for example DJI Terra.

Bug fixLuciadLightspeed

LCD-14910
TLspIconStyle: objects in the same layer whose icon styles differ only in their icon or their scale could be selected using the size of another object's icon. As a result, an object with a large icon could sometimes only be selected by clicking close to its center. Similarly, when an object is styled with several oriented icons, selection now takes the orientation of each icon into account instead of only that of the first icon.

Bug fixLuciadLightspeed

intersection2DLineSegments in TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil could hang for rhumb lines that cross the date line. This also affected topology and constructive geometry operations on rhumb line shapes, and closestPointsBetweenShapes of TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil.

Bug fixLuciadLightspeed

contains2D in TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil now considers a point within 0.1 mm of an end point of the rhumb line to be on it. Previously a point only micrometers beyond an end point, as intersection computations can return it, could be considered not on the rhumb line. The rhumb line distance of TLcdEllipsoid and TLcdSphereRhumblineUtil now also includes the north-south part for points whose latitudes differ by less than 1e-8 degree (about a millimeter).

Bug fixLuciadLightspeed

intersectionGeodesicRhumblineSFCT and intersectsGeodesicRhumbline in TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil now find all intersections of a geodesic and a rhumb line. Previously they could miss intersections, in particular for long lines, near the poles and near the date line. TLcdSphereRhumblineUtil also missed the intersections of nearly parallel lines. This also affects topology and constructive geometry operations on shapes that combine geodesic and rhumb line interpolation. The computation is also faster, most of all when the lines do not intersect.

Bug fixLuciadLightspeed

TLcdEllipsoid.geodesicPointSFCT with a fraction is now accurate for a geodesic that crosses the date line. Previously the point could be up to a meter off the geodesic for a geodesic of a kilometer, and centimeters off for longer geodesics.

Bug fixLuciadLightspeed

LCD-14878
Rhumb line computations are now more accurate for rhumb lines that run nearly east-west.

Bug fixLuciadLightspeed

closestPointOnShape in TLcdEllipsoidUtil, TLcdEllipsoidRhumblineUtil, TLcdSphereUtil and TLcdSphereRhumblineUtil now throws an IllegalArgumentException for a linearly interpolated ILcdPolyline or ILcdPolygon, as documented. Previously it silently returned the cartesian distance in the coordinate units of the shape (degrees), instead of the documented geodesic or rhumb distance.

Bug fixLuciadLightspeed

LCD-14876
closestPointOnShape in TLcdEllipsoidUtil, TLcdEllipsoidRhumblineUtil, TLcdSphereUtil, TLcdSphereRhumblineUtil and TLcdCartesian now takes the closing edge of an ILcdPolygon into account, from its last point back to its first point. Previously it ignored that edge, so it could return a point and distance that were not the closest.

Bug fixLuciadLightspeed

LCD-14871
TLcdSphereUtil.closestPointOnShape now consistently returns the distance in arc degrees for a rhumb-interpolated ILcdPolyline or ILcdPolygon. Previously it returned meters for such shapes, while returning arc degrees for geodesic-interpolated shapes and points, which was inconsistent with the documented unit.

Bug fixLuciadLightspeed

LCD-14680
The TLcdOGC3DTilesModelDecoder will now throw a TLcdModelDecodeException with a clear message when encountering a GLB file that it can't handle.

Bug fixLuciadLightspeed

LCD-14927
A GXY view label placer no longer passes the labels of a layer that is not an ILcdGXYEditableLabelsLayer to its labeling algorithm, as those labels were never painted. Previously, such labels could make the labeling algorithm fail and interrupt the label placement of the whole view.

Bug fixLuciadLightspeed

LCD-14890
With incremental painting, Lightspeed raster layers sometimes did not show a tile that had finished loading until all other tiles in the view were loaded. This has been fixed.

Bug fixLuciadLightspeed

LCD-14889
TLcdTextIcon.Builder now copies the list passed to lines. Previously, modifying that list afterwards could leave the icon with a stale size. As a result, a TLcdGXYLabelPainter whose retrieveLabels returned the same array with changed content could paint a label background that was too small for its text.

Bug fixLuciadLightspeed

LCD-14860
Fixed a ThreadGroup leak in the thread pools used internally by Luciad code. Long-running applications in which such a pool repeatedly became idle and was used again leaked one ThreadGroup each time. The configured thread priority is now also retained in that case.

Bug fixOGC Server

LCD-14935
The WCS GetCoverage KVP parameter INTERPOLATION value is now treated case-insensitive.

Bug fixOGC Server

LCD-14927
Fixed an issue where GetMap responses showed no labels, for example those of a TextSymbolizer in an SLD style, when lazy initialization of the WMS service was enabled. Labels are now painted the same way with and without lazy initialization. This also prevents a GetMap request for a layer whose SLD style combines a PointSymbolizer and a TextSymbolizer from failing with "Point symbolizer painter can not handle geometry of type".

Bug fixOGC Server

LCD-14914
Fixed an issue where a GetMap request with a FILTER parameter without a spatial component could omit features that should be rendered. The extent of a filtered layer was taken from the request that first rendered it, and a later request with the same parameters but a different BBOX reused that layer. As a result, the filtered features outside the extent of the first request were not rendered.

Bug fixOGC Server

LCD-14785
Fixed validation of the WCSGetCoverage request bounding box against the data extent of the coverage. For data with a geodetic reference this could result in an incorrect rejection of the request.

Bug fixAviation Standards

LCD-14940
Fixed an issue where TLcdAIXM51ModelDecoder failed with an IOException when decoding an empty WFS 2.0.0 feature collection, as returned by a WFS 2.0.0 service for a query without results. Such a feature collection is now decoded into an empty model.

Bug fixAviation Standards

TLcdProcedure3DGeometryCalculator no longer lets an aircraft descend while it climbs. When the aircraft had reached the altitude of a leg with a minimum altitude, and the next leg did not require a higher altitude, it descended toward that minimum, and climbed back in the next leg. This affected SIDs and the missed approach of approach procedures. In addition, a course change of exactly 4 degrees, the smallest one that TLcdProcedureGeometryCalculator draws as a turn, is now always drawn as a turn. Before, rounding errors decided.

Bug fixAviation Standards

LCD-14913
Fixed a bug in TLcdProcedure3DGeometryCalculator where the altitudes of the last leg and the initial altitude of a STAR or IAP could be based on altitude constraints that do not belong to the procedure. As a result, the last leg could for example descend instead of staying level, and the calculated altitudes could depend on the procedures that were calculated before with the same calculator instance.

Bug fixAviation Standards

LCD-14920
TLcdAIXMProcedureHandler now decodes the fix of a procedure leg without a fly-by indicator (codeTurnValid) as a fly-by fix. Previously, such a fix was flown over, which made the calculated geometry overshoot the fix before turning to the next leg.

Bug fixAviation Standards

LCD-14918
TLcdAIXMProcedureHandler now converts magnetic courses of procedure legs to true courses, as required by ILcdProcedureLeg.getCourse(). Previously, magnetic tracks, magnetic bearings, VOR radials and headings were used as true courses, causing the calculated geometry of legs such as CF, VI or HM to be rotated by the magnetic variation. Courses associated with a VOR or TACAN are converted using the station declination of the navaid. Other courses are converted using the magnetic variation of the procedure's aerodrome. The COURSE_TYPE property continues to hold the course type as published.

Bug fixDefense Standards

LCD-14928
Fixed VPF objects that could go missing, or the application that could freeze, when the same VPF data was used in several places at once, for example on a map and in a table.

Bug fixDefense Symbology

LCD-14886

The APP-6E Cyberspace symbols now display the headquarters staff, feint/dummy and task force indicators when their hqTaskForceDummy modifier is set. Previously these indicators were missing.

In addition, the hqTaskForceDummy modifier now only offers the indicators that the APP-6E standard allows for the following symbol sets:

  • Land Equipment (15): the headquarters and task force indicators are disabled.
  • Land Installation (20): the task force indicator is disabled.
  • Dismounted Individual (27): the headquarters and task force indicators are disabled.
  • Activities (40): the feint/dummy and task force indicators are disabled.
  • Cyberspace - Non Unit (64): the feint/dummy indicator is now enabled. Previously none of the indicators were available for this symbol set.

Bug fixDefense Symbology

LCD-14828
The hostile (ENY) modifier label is now shown for Axis of Advance symbols in APP-6E.

Bug fixDefense Symbology

LCD-14826

The APP-6E mined area symbols now display the feint/dummy indicator when their hqTaskForceDummy modifier is set to one of the Feint/Dummy values. Previously the indicator was missing, so a decoy area was indistinguishable from a real one.

The change affects the following APP-6E symbols:

  • Minefield - Dynamic Depiction
  • Mined Area
  • Mined Area, Fenced

Bug fixDefense Symbology

LCD-14930

Fixed incorrect rendering of a number of APP-6A and APP-6B icons.

APP-6A:

  • Hostile or Insurgent Infantry (2.X.3.1.15): now uses the Infantry icon, where it used to have the Motorised Infantry icon.

APP-6A and APP-6B:

  • Hail (3.X.7.3): now uses the correct icon.
  • Ice Pellets (3.X.7.4): now use the correct color.
  • Ice Crystals (3.X.7.5): now use the correct color.
  • Freezing Fog (3.X.9.2.1): now use the correct color.

APP-6B:

  • Multi-Functional Earth Mover (1.X.3.2.2.3.2.1): now has a circular frame instead of a rectangular one when in the Friendly affiliation.

Bug fixInfrastructure Standards

LCD-14742
TLcd3DTilesProcessorBuilder: Fix output texture degradation when the input mesh has UDIM textures tiles.

Bug fixMaritime Standards

LCD-14178, LCD-14811
An S-101 feature that is only referenced by another feature, such as the text placement of a light or a buoy, is now visualized. Previously, reading any of its attributes failed, and the feature it belongs to fell back to default symbology.

Bug fixMaritime Standards

LCD-14809
Applying an S-101 update file (.001, .002, ...) no longer affects the geometry of features the update leaves untouched. Previously, an update that only modified the attributes of a feature discarded the geometry it had in the base cell, and an update that replaced the geometry of a feature kept the replaced geometry as well. The affected features were either not drawn at all or drawn twice.

Bug fixMaritime Standards

LCD-14166
S-101 features that only contain text instructions are now labeled in GXY views. Previously, the text was not shown.

Bug fixMaritime Standards

LCD-14150, LCD-14167, LCD-14807
Fixed an issue where lines and symbols were hidden underneath area fills in GXY. The geometry type is now correctly taken into account in the painting order of S-101 features: areas first, then lines, then symbols, and finally text.

Bug fixMaritime Standards

LCD-14806
Decoding and visualization of S-101 data is now in line with version 2.0.0 of the Portrayal Catalogue and version 5.2.0 of the Feature Catalogue, as officially published by IHO. Compared to the submitted versions, this fixes (amongst others) an issue that for features with multiple spatial references, only the first reference was visualized.

Bug fixMaritime Standards

LCD-14810
In Lightspeed views, the rotation of S-101 icons was not always applied correctly, which could cause the affected icons to disappear. This has been resolved.

Bug fixMaritime Standards

LCD-14911
Fixed an issue with the SENC cache: S-57 cells crossing or starting at the prime meridian (0 degrees longitude) were displayed incompletely, or not at all, when the SENC cache was enabled. This is now resolved. Existing SENC caches do not need to be regenerated.

Upgrade considerationLuciadLightspeed

LCD-14892
The following dependencies have been upgraded:
Group ID Artifact ID Old Version New Version
com.fasterxml.jackson.core jackson-core 2.21.6 2.21.7
com.fasterxml.jackson.core jackson-databind 2.21.6 2.21.7
com.fasterxml.jackson.datatype jackson-datatype-jdk8 2.21.6 2.21.7
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.21.6 2.21.7

Upgrade considerationLuciadLightspeed

LCD-14891
The following dependencies have been upgraded:
Group ID Artifact ID Old Version New Version
ch.qos.logback logback-classic 1.5.38 1.6.4
ch.qos.logback logback-core 1.5.38 1.6.4
org.slf4j jcl-over-slf4j 2.0.18 2.0.19
org.slf4j jul-to-slf4j 2.0.18 2.0.19
org.slf4j slf4j-api 2.0.18 2.0.19

2026.1

New featureLucy (LuciadLightspeed)

We have added full support for the military standard 'APP-6 NATO Joint Military Symbology, Edition E Version 2, October 2025' to the TLcyAPP6AAddOn. The default standard for the addon is now APP-6E. The APP6 addon is now also enabled by default in Lucy MapCentric, rather than the MS2525 addon. Read the How to switch between military symbologies in Lucy article for more information on how to configure the standard to be used.

New featureLucy (LuciadLightspeed)

TLcyLspMBTilesFormatAddOn now supports Mapbox style files for MBTiles vector tile data sources. Styles are resolved automatically using the following precedence:
  1. For local MBTiles files, an equally named Mapbox style file (.json) located alongside the MBTiles file is applied automatically.
  2. Otherwise, the MBTiles metadata is checked for a STYLE property that references a Mapbox style. LuciadFusion uses this mechanism to advertise a style file associated with a published MBTiles data source.
  3. If no style can be found, a default style is applied.

New featureLuciadLightspeed

Visualization of OpenStreetMap data on a Lightspeed map, styled with different Mapbox styles — ©OpenMapTiles ©OpenStreetMap contributors
Visualization of OpenStreetMap data on a Lightspeed map, styled with different Mapbox styles — ©OpenStreetMap contributors, ©OpenMapTiles
You can now style MBTiles vector data with Mapbox style files. You can use the method mapboxStyle on the class TLspMBTilesVectorLayerBuilder to configure such a style file. See Working with MBTiles data for more information. If no style is configured explicitly, the MBTiles metadata is checked for a STYLE property that references a Mapbox style. If such a property is present, that style is applied automatically. LuciadFusion uses this mechanism to advertise the style file associated with a published MBTiles data source.

New featureLuciadLightspeed

Visualization of an I3S dataset on a Lightspeed map — data: ODU GeoSEA, CC BY 4.0
Visualization of an I3S dataset on a Lightspeed map — data: ODU GeoSEA, CC BY 4.0

Added support for the OGC Indexed 3D Scene Layers (I3S) data format. OGC I3S is an open community standard that defines a 3D content delivery format used to rapidly stream and distribute large volumes of 3D GIS data to mobile, web and desktop clients.

For more details, see the OGC I3S entry in the Data Formats documentation section.

New featureLucy (LuciadLightspeed)

Lucy now supports the decoding of I3S datasets (.slpk files) and their visualization in Lightspeed views. This functionality is provided through two new add-ons:

New featureAviation Standards

The DAFIF(T) decoder TLcdDAFIFModelDecoder now supports decoding DAFIFT 8.1 datasets, in addition to the existing DAFIF 7 and DAFIFT 8.0 support. To enable this, several new DAFIFT 8.1 properties have been introduced, as listed below. Refer to the corresponding Javadoc for details on their semantics and usage.

Additionally, a new runway surface type AM2 has been added to TLcdRunwaySurfaceType, representing a surface type consisting of metal planking.

New featureDefense Symbology

We have added full support for the military standard 'APP-6 NATO Joint Military Symbology, Edition E Version 2, October 2025'.

The symbols of the Cyberspace symbol set, which we added previous minor release, LuciadLightspeed 2026.0, have been upgraded from APP-6E E Version 1 to APP-6E Version 2.

You can visualize the APP-6E symbols using the Military Symbology samples available for both GXY and Lightspeed. In a Lightspeed view, you can create a layer for these symbols with TLspAPP6ALayerBuilder. In a GXY view, you can paint them by setting a TLcdAPP6AGXYPainterProvider on your TLcdGXYLayer.

APP-6E - Fictional Scenario
APP-6E - Fictional Scenario.

New featureInfrastructure Standards

The TLcd3DTilesProcessorBuilder can now process GLB files that use the EXT_texture_webp glTF extension. This increases compatibility with exporters that optimize GLB files for file size.

New featureTiling Engine

The TLfnPointCloudPreprocessor can now pre-process non-georeferenced point clouds. It's now also possible to use LuciadFusion Studio to create an OGC 3D Tiles service from a non-georeferenced point cloud. For more information and limitations, see the Pre-process point cloud data article.

ImprovementLuciadLightspeed

A new article in the documentation explains how to get the most out of agentic AI tools such as GitHub Copilot or Claude Code when developing applications against LuciadLightspeed. The article also contains an AI skill bundle that can help you to improve your agent's output.

ImprovementLuciadLightspeed

The .vmoptions files which are used to configure the JVM parameters for the LuciadLightspeed samples and Lucy now use -XX:MaxRAMPercentage to set the Java heap size instead of -Xmx. The previously configured heap sizes were fairly conservative, so on modern systems the applications will now typically be able to allocate more memory and therefore run more comfortably.

ImprovementLuciadLightspeed

On NVidia GPUs, TLspViewBuilder now takes the GPU's video memory size into account when computing the default size of the OpenGL resource cache (#glResourceCacheSize()). This significantly improves the Lightspeed view's ability to load large datasets. In previous versions, the default cache size was usually overly conservative for modern GPUs with 8+ GB of memory.

The change reduces the need for users to manually adjust the cache size to alleviate performance issues. It only takes effect if the application does not explicitly set the cache size itself (either via the API or via the corresponding system property). On non-NVidia GPUs, the behavior is unchanged compared to previous LuciadLightspeed versions.

ImprovementLuciadLightspeed

LCD-14120, LCD-14594, LCD-14595, LCD-14596, LCD-14738
Improved TLcdOGCBinarySpatialOperator to support the operand flexibility introduced in OGC Filter 2.0.3. Binary spatial operators can now use either property names or geometries for both operands, enabling support for additional valid OGC Filter expressions.

To support this behavior, the following methods have been added to TLcdOGCBinarySpatialOperator:
  • setFirstArgument(Object)/getFirstArgument()
  • setSecondArgument(Object)/getSecondArgument()
The following methods have been deprecated because they assume the legacy model where the first operand is always a property name and the second operand is always a geometry:
  • setPropertyName(TLcdOGCPropertyName)/getPropertyName()
  • setShape(ILcdShape)/getShape()
Use setFirstArgument(Object)/getFirstArgument() and setSecondArgument(Object)/getSecondArgument() instead.

ImprovementLuciadLightspeed

In Lightspeed it is now possible to configure a padding value for individual label placements. You can configure the value on the labeling algorithms and on the label location providers.

ImprovementLuciadLightspeed

TLcdOGC3DTilesModelDecoder, TLsp3DTileLayerBuilder: the internals of the OGC 3D Tiles support have been considerably revamped. Noteworthy improvements include:
  • Improved concurrency: downloading and decoding of tile payloads now happen on separate threads; larger thread pool for local data.
  • Throttling of GPU data transfers for freshly downloaded tiles, to reduce frame drops during navigation.
  • Improved prioritization of tile downloads based on camera position, and cancellation of downloads that become obsolete due to camera movement.
  • Texture compression to reduce GPU memory usage and CPU-to-GPU data transfer volumes.
  • Evaluation of the geometric error property is now DPI-aware.
  • LPC point cloud layers no longer ignore the quality factor configured on the layer builder.
  • Authentication can now be configured by annotating an ILcdPasswordProvider with @LcdService. It is no longer necessary to install a custom ILcdInputStreamFactory on the model decoder for this.
  • Support for HTTP/2 if supported by the server; automatic fallback to HTTP/1.1 otherwise.
These improvements also benefit other formats that use the same internal machinery: MBTiles, I3S, LPC, OSGB, IFC, BINZ, Revit and Navisworks. The changes are mostly transparent to the user.

ImprovementLucy (LuciadLightspeed)

Color picker buttons and dialogs now have a more consistent appearance and behavior across the product.

ImprovementLuciadLightspeed

TLcdInputStreamFactory now supports automatic discovery of ILcdPasswordProvider implementations via TLcdServiceLoader. If you do not explicitly set a password provider on the factory, the factory will look for providers annotated with @LcdService and try to use those.

ImprovementLucy (LuciadLightspeed)

LUCY-5100
TLcyDrawingAddOn: the text object customizer panel offers more horizontal space for the text edit field. In addition, the field now does line wrapping.

ImprovementLuciadLightspeed

LCD-14116
The SLD GXY and Lightspeed implementation now supports the rotation parameter to be interpreted in model space. This capability can be enabled on a TLcdSLDTextSymbolizer and a TLcdSLDPointSymbolizer by configuring an SLD vendor option with name rotationSpace and value VIEW or WORLD.

ImprovementLuciadLightspeed

LCD-14202
The following transformation implementations now have an isIdentity() method: This function makes it possible to detect if the output of the transformation would be exactly the same as its input, i.e. it allows to see if 2 references are the same with respect to transformations.

ImprovementDatabase Connectors

Oracle 26ai is now supported as a database by the TLcdOracleSpatialModelDecoder and TLcdOracleSpatialModelEncoder.

ImprovementOGC Server

WMS GetMap responses now include a Content-Disposition header that suggests a filename for the response, for all supported map formats. Browsers use this header to pick a sensible filename when they cannot render a format inline and instead offer it for download.

ImprovementOGC Server

LCD-14728

You can now configure the maximum expiry time for WFS-T feature locks with the wfs.maxLockExpiry servlet configuration parameter. The value is expressed in seconds and applies to locks created or refreshed by LockFeature and GetFeatureWithLock requests.

If a client requests an expiry value that exceeds this limit, the request is rejected with an InvalidParameterValue service exception report. The configured limit is also advertised as a maxExpiry constraint on the LockFeature and GetFeatureWithLock operations in the WFS GetCapabilities response, so that clients can find out about it up front.

ImprovementOGC Server

LCD-14727
The WFS 2.0.0 GetCapabilities response now includes the AutomaticDataLocking constraint in the ows:OperationsMetadata section when the server supports locking and transactions. The constraint is set to FALSE, informing clients that feature locking is not performed automatically and that the LockFeature operation must be used before update or delete transactions when locking is required.

ImprovementOGC Server

LCD-14587
A new GetFeatureInfo output format has been added to the WMS and WMTS servers. This format encodes features using a GML 3.1.1‑based application schema and is identified by the MIME type application/vnd.ogc.gml/3.1.1.

ImprovementAviation Standards

The DAFIFT decoder TLcdDAFIFTHelipadDecoder has been made more robust when handling helipad records with missing low- and high-end positions. In such cases, the decoder now falls back to a single-point position, consistent with the existing behavior for short helipads (smaller than 500 feet).

ImprovementInfrastructure Standards

LCD-14070
The Meshup CLI can now automatically clean an output directory. An output directory that is located within the system's temporary files folder will be automatically cleaned before creating a new tileset. This allows faster iteration when experimenting with the Meshup CLI. Output directory locations outside the system's temporary files folder will never be automatically cleaned, to ensure data safety. See the 3D Tiles Processing Engine documentation page for more information.

ImprovementTiling Engine

LuciadFusion now crawls LAS/LAZ files without a reference. It automatically adds a TLcdCartesianReference for such files. This allows you to create an OGC 3D Tiles service directly from a non-referenced LAS/LAZ file without extra steps.

Bug fixLuciadLightspeed

LCD-14527
TLcdLonLatPointFormat can now handle patterns that include a hyphen as separator character, such as lat(dmsa)-lon(dmsa).

Bug fixLucy (LuciadLightspeed)

LUCY-5087
Geoid support in the DEM/DTED/SwissDHM/GeoTIFF formats has been enabled by default. This is in line with the default settings of the respective model decoders. Refer to the model decoder implementation Javadoc for more information. To revert this change for a format, change the property value in the line <relevant-format>.modelDecoder.supportGeoidDatums = true to false in the appropriate format add-on configuration file. For more information on vertical datum issues, refer to our article Detecting and fixing vertical datum issues .

Bug fixLuciadLightspeed

LCD-14758
On some Linux systems, Lightspeed views could fail to run on X11 with a "Unable to find a suitable FB config" error. In other cases, Lightspeed could load an incorrect version of libX11.so, resulting in a JVM crash. Both of these problems have been fixed.

Bug fixAviation Standards

LCD-14746
Fixed an issue where AIXM 5.1 data containing a mix of WGS 84 2D (EPSG:4326) and WGS 84 3D (EPSG:4979) geometries could be assigned a 2D model reference when a 2D geometry was encountered first during decoding. As a result, altitude information from 3D geometries could be lost. The decoder now promotes the model reference to a 3D geodetic reference when required, ensuring that altitude values are preserved.

Bug fixInfrastructure Standards

LCD-13913
TLcd3DTilesProcessorBuilder: Improve color accuracy of a Draco-encoded tileset when starting from input data that uses many materials.

Bug fixMaritime Standards

LCD-14805
Decoding S-101 data has been made more robust against records that don't reference any geometry.

Upgrade considerationLuciadLightspeed

LCD-14199
The evaluation of an OGC filter containing a Within spatial condition now follows the DE-9IM model as defined by the OGC Filter specification. In particular, a geometry located on the boundary of another geometry is no longer considered to be within that geometry. This may change the outcome of existing filters that rely on the previous behavior.

To restore the legacy behavior, start the Java Virtual Machine with the System property com.luciad.ogc.filter.TLcdOGCBinarySpatialOperator.USE_LEGACY_WITHIN_SEMANTICS=true.

Upgrade considerationLuciadLightspeed

LCD-14016
The SQLite library is now statically linked into SQLiteJ. Hence, the SQLite dynamic libraries sqlite3.dll, libsqlite3.so and libsqlite3.dylib are no longer included in the SQLiteJ native JARs that ship with LuciadLightspeed and LuciadFusion.

Upgrade considerationLuciadLightspeed

The GeoPackage library now depends on SQLite 3.53.3. This version fixes the CVE-2025-6965 and CVE-2026-50812 vulnerabilities.

Upgrade considerationLuciadLightspeed

The SQLiteJ library now depends on SQLite 3.53.3. This version fixes the CVE-2025-6965 and CVE-2026-50812 vulnerabilities.

Upgrade considerationLuciadLightspeed

SpatiaLite has been updated to version 5.1.0, introducing significant changes compared to the 4.x series, including updated dependencies (e.g. PROJ ≥ 6) and improved spatial functionality. We now also support Linux ARM64 and Apple silicon platforms. For more information, see https://www.gaia-gis.it/fossil/libspatialite/wiki?name=5.0.0-doc.

Upgrade considerationLucy (LuciadLightspeed)

TLcyOGC3DTilesAddOn no longer installs an ILcdInputStreamFactory on the TLcdOGC3DTilesModelDecoder by default, because the decoder has its own internal higher-performance HTTP client. If you need authentication for your 3D Tiles data, add an @LcdService annotation to your ILcdPasswordProvider and the decoder will pick it up automatically. If you do need the decoder to use input stream factories that are registered as a service in Lucy, set the configuration option TLcyOGC3DTilesAddOn.useInputStreamFactory=true in TLcyOGC3DTilesAddOn.cfg. We recommend only doing so if you need to support non-HTTP transports such as S3.

Upgrade considerationLuciadLightspeed

LCD-14546, LCD-14547
TLspPanController is now greedy by default, meaning it avoids user interactions other than mouse drags while panning. If this is not desired, the old behavior can be restored by using TLspPanController#setGreedy(false).

Upgrade considerationLuciadLightspeed

LCD-13532, LCD-14109, LCD-14112
The default sizes of some caches used in LuciadLightspeed have been increased to better accommodate the increasing amount of data in applications and to improve performance.
  • The LuciadLightspeed image processing framework uses a shared cache to store input, intermediate or processed data required by the imaging engine. The default size of this cache has been increased from 64 MB to 128 MB. This cache size can be configured by setting the system property com.luciad.imaging.maxCacheSize to a value in megabytes, e.g. -Dcom.luciad.imaging.maxCacheSize=64 to limit the cache size to 64 MB. Note that the cache should be large enough to fit at least all data that is being painted.
  • The OpenCL imaging engine requires memory on the OpenCL device, typically a GPU, for its operation. It also uses a cache and its default size has been increased from 32 MB to 48 MB. This cache size can be configured by setting the system property com.luciad.imaging.engine.opencl.maxCLCacheSize to a value in megabytes, e.g. -Dcom.luciad.imaging.engine.opencl.maxCLCacheSize=32 to limit the cache size to 32 MB.
  • The default size of the tile cache used by a height provider to read data from an image has been increased from 10 MB to 16 MB. This cache size can be configured when creating the height provider using the new cache size property on TLcdImageModelHeightProviderFactory or when creating a TLcdImageHeightProvider directly with the new builder. The maximal number of entries that can be stored in this cache has also been increased. You can configure it similarly to the cache size.
If your application has specific memory requirements and it's currently relying on the default values, you may want to consider setting these cache sizes to their previous default values.

Upgrade considerationLuciadLightspeed

LCD-14117
The following dependencies have been updated:
Group ID Artifact ID Old Version New Version
ch.qos.logback logback-classic 1.5.36 1.5.38
ch.qos.logback logback-core 1.5.36 1.5.38
com.fasterxml.jackson.core jackson-core 2.21.5 2.21.6
com.fasterxml.jackson.core jackson-databind 2.21.5 2.21.6
com.fasterxml.jackson.datatype jackson-datatype-jdk8 2.21.5 2.21.6
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.21.5 2.21.6
jakarta.servlet jakarta.servlet-api 6.0.0 6.1.0
org.antlr antlr4-runtime 4.9.2 4.13.2
org.apache.commons commons-lang3 3.18.0 3.20.0
org.apache.httpcomponents.client5 httpclient5 5.6 5.6.4
org.apache.httpcomponents.client5 httpclient5-cache 5.6 5.6.4
software.amazon.awssdk annotations 2.25.57 2.41.16
software.amazon.awssdk apache-client 2.25.57 2.41.16
software.amazon.awssdk arns 2.25.57 2.41.16
software.amazon.awssdk auth 2.25.57 2.41.16
software.amazon.awssdk aws-core 2.25.57 2.41.16
software.amazon.awssdk aws-query-protocol 2.25.57 2.41.16
software.amazon.awssdk aws-xml-protocol 2.25.57 2.41.16
software.amazon.awssdk checksums 2.25.57 2.41.16
software.amazon.awssdk checksums-spi 2.25.57 2.41.16
software.amazon.awssdk crt-core 2.25.57 2.41.16
software.amazon.awssdk endpoints-spi 2.25.57 2.41.16
software.amazon.awssdk http-auth 2.25.57 2.41.16
software.amazon.awssdk http-auth-aws 2.25.57 2.41.16
software.amazon.awssdk http-auth-spi 2.25.57 2.41.16
software.amazon.awssdk http-client-spi 2.25.57 2.41.16
software.amazon.awssdk identity-spi 2.25.57 2.41.16
software.amazon.awssdk json-utils 2.25.57 2.41.16
software.amazon.awssdk metrics-spi 2.25.57 2.41.16
software.amazon.awssdk profiles 2.25.57 2.41.16
software.amazon.awssdk protocol-core 2.25.57 2.41.16
software.amazon.awssdk regions 2.25.57 2.41.16
software.amazon.awssdk s3 2.25.57 2.41.16
software.amazon.awssdk sdk-core 2.25.57 2.41.16
software.amazon.awssdk third-party-jackson-core 2.25.57 2.41.16
software.amazon.awssdk utils 2.25.57 2.41.16

The following dependencies have been removed:
Group ID Artifact ID Version
org.apache.httpcomponents httpclient 4.5.13
org.apache.httpcomponents httpcore 4.4.13
org.slf4j jcl-over-slf4j 2.0.18

The following dependencies have been added:
Group ID Artifact ID Version
software.amazon.awssdk apache5-client 2.41.16
software.amazon.awssdk http-auth-aws-eventstream 2.41.16
software.amazon.awssdk retries 2.41.16
software.amazon.awssdk retries-spi 2.41.16
software.amazon.awssdk utils-lite 2.41.16

The following sample dependencies have been updated:
Group ID Artifact ID Old Version New Version
com.zaxxer HikariCP 6.3.3 7.0.2
io.micrometer micrometer-commons 1.15.12 1.17.1
io.micrometer micrometer-observation 1.15.12 1.17.1
jakarta.annotation jakarta.annotation-api 2.1.1 3.0.0
jakarta.enterprise jakarta.enterprise.cdi-api 4.0.1 4.1.0
jakarta.enterprise jakarta.enterprise.lang-model 4.0.1 4.1.0
jakarta.interceptor jakarta.interceptor-api 2.1.0 2.2.0
jakarta.websocket jakarta.websocket-api 2.1.1 2.2.0
jakarta.websocket jakarta.websocket-client-api 2.1.1 2.2.0
org.apache.logging.log4j log4j-api 2.24.3 2.25.5
org.apache.logging.log4j log4j-to-slf4j 2.24.3 2.25.5
org.apache.tomcat.embed tomcat-embed-el 10.1.55 11.0.24
org.eclipse.jetty jetty-alpn-client 12.0.33 12.1.12
org.eclipse.jetty jetty-client 12.0.33 12.1.12
org.eclipse.jetty jetty-http 12.0.33 12.1.12
org.eclipse.jetty jetty-io 12.0.33 12.1.12
org.eclipse.jetty jetty-plus 12.0.33 12.1.12
org.eclipse.jetty jetty-security 12.0.33 12.1.12
org.eclipse.jetty jetty-server 12.0.33 12.1.12
org.eclipse.jetty jetty-session 12.0.33 12.1.12
org.eclipse.jetty jetty-util 12.0.33 12.1.12
org.eclipse.jetty jetty-xml 12.0.33 12.1.12
org.eclipse.jetty.websocket jetty-websocket-core-client 12.0.33 12.1.12
org.eclipse.jetty.websocket jetty-websocket-core-common 12.0.33 12.1.12
org.eclipse.jetty.websocket jetty-websocket-core-server 12.0.33 12.1.12
org.eclipse.jetty.websocket jetty-websocket-jetty-api 12.0.33 12.1.12
org.eclipse.jetty.websocket jetty-websocket-jetty-common 12.0.33 12.1.12
org.ow2.asm asm 9.9.1 9.10.1
org.ow2.asm asm-commons 9.9.1 9.10.1
org.ow2.asm asm-tree 9.9.1 9.10.1
org.springframework spring-aop 6.2.19 7.0.9
org.springframework spring-beans 6.2.19 7.0.9
org.springframework spring-context 6.2.19 7.0.9
org.springframework spring-core 6.2.19 7.0.9
org.springframework spring-expression 6.2.19 7.0.9
org.springframework spring-web 6.2.19 7.0.9
org.springframework spring-webmvc 6.2.19 7.0.9
org.springframework.boot spring-boot 3.5.15 4.1.1
org.springframework.boot spring-boot-autoconfigure 3.5.15 4.1.1
org.springframework.boot spring-boot-starter 3.5.15 4.1.1
org.springframework.boot spring-boot-starter-logging 3.5.15 4.1.1
org.springframework.boot spring-boot-starter-web 3.5.15 4.1.1
org.yaml snakeyaml 2.5 2.6

The following sample dependencies have been added:
Group ID Artifact ID Version
org.apache.httpcomponents.client5 httpclient5 5.6.4
org.apache.httpcomponents.core5 httpcore5 5.4.3
org.apache.httpcomponents.core5 httpcore5-h2 5.4.3
org.eclipse.jetty jetty-annotations 12.1.12
org.eclipse.jetty.compression jetty-compression-common 12.1.12
org.eclipse.jetty.compression jetty-compression-gzip 12.1.12
org.eclipse.jetty.compression jetty-compression-server 12.1.12
org.eclipse.jetty.ee jetty-ee-webapp 12.1.12
org.eclipse.jetty.ee11 jetty-ee11-annotations 12.1.12
org.eclipse.jetty.ee11 jetty-ee11-plus 12.1.12
org.eclipse.jetty.ee11 jetty-ee11-servlet 12.1.12
org.eclipse.jetty.ee11 jetty-ee11-webapp 12.1.12
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jakarta-client 12.1.12
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jakarta-common 12.1.12
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jakarta-server 12.1.12
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-jetty-server 12.1.12
org.eclipse.jetty.ee11.websocket jetty-ee11-websocket-servlet 12.1.12
org.eclipse.jetty.websocket jetty-websocket-jetty-server 12.1.12
org.jspecify jspecify 1.0.1
org.springframework.boot spring-boot-http-converter 4.1.1
org.springframework.boot spring-boot-jetty 4.1.1
org.springframework.boot spring-boot-servlet 4.1.1
org.springframework.boot spring-boot-starter-jetty 4.1.1
org.springframework.boot spring-boot-starter-jetty-runtime 4.1.1
org.springframework.boot spring-boot-web-server 4.1.1
org.springframework.boot spring-boot-webmvc 4.1.1

The following sample dependencies have been removed:
Group ID Artifact ID Version
org.eclipse.jetty jetty-ee 12.0.33
org.eclipse.jetty jetty-jndi 12.0.33
org.eclipse.jetty.ee10 jetty-ee10-annotations 12.0.33
org.eclipse.jetty.ee10 jetty-ee10-plus 12.0.33
org.eclipse.jetty.ee10 jetty-ee10-servlet 12.0.33
org.eclipse.jetty.ee10 jetty-ee10-webapp 12.0.33
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jakarta-client 12.0.33
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jakarta-common 12.0.33
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jakarta-server 12.0.33
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jetty-server 12.0.33
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-servlet 12.0.33
org.springframework.boot spring-boot-starter-json 3.5.15

Upgrade considerationLuciadLightspeed

Upgraded the software.amazon.awssdk:s3 dependency from version 2.25.57 to 2.41.16. The AWS SDK now uses the ApacheHttpClient5 implementation by default, replacing the previous Apache 4–based HTTP client. As part of this upgrade, the transitive dependencies httpclient and httpcore (Apache HTTP Client 4) have been removed because they contained known security vulnerabilities.
Clients who still wish to use the Apache 4 HTTP client remain free to do so, but must now add the required httpclient and httpcore dependencies explicitly in their own project configuration.

Upgrade considerationAdvanced Raster Connectors

LCD-14577, LCD-14636
The third-party library GDAL was updated to version 3.13.1. With this update, the TLcdGDALModelDecoder can no longer decode Magellan BLX Topo and SGI Image Format files. The GDAL library no longer offers supports for these formats.

On Windows, the TLcdGDALModelDecoder now verifies that the JVM is compatible with the GDAL native libraries before initializing. The minimum supported JVM patch levels have been updated to Java 17.0.19+, Java 21.0.11+, and Java 25.0.3+. If the JVM is not a known-supported version, a compatibility check is run. If the check fails, the TLcdGDALModelDecoder is deactivated and will not decode any files. This prevents EXCEPTION_ACCESS_VIOLATION crashes on incompatible JVMs. To disable this check and force initialization regardless of JVM version, set the system property com.luciad.format.gdal.checkJVMCompatibility to false. Note that there are no known JVM compatibility issues on Linux and macOS.

Upgrade considerationOGC Server

The WMS and WMTS services now return an HTTP 500 Internal Server Error by default when an exception occurs while painting a requested map or tile. Previously this had to be enabled explicitly, and the services returned an image in which the affected data was missing.

Set the com.luciad.fusion.wms.server.errorResponseOnPaintException system property to false to restore the previous behavior.

Upgrade considerationDefense Symbology

The hostile text modifier now accepts only two values: ENY (the default) and null.

You can use the modifier to disable the ENY indicator: setting it to null removes the annotation from both the icon label and the stroke decoration of tactical graphics. Previously, symbols with a hostile affiliation were always annotated with ENY, regardless of the modifier value.

The change affects all supported military symbology standards.

Upgrade considerationDefense Symbology

A number of control measure Line symbols in APP-6D and MIL-STD 2525D no longer display the generic PL ("phase line") label. Previously these symbols were labeled twice: once with PL followed by the first uniqueDesignation modifier, and once with the abbreviation specific to the symbol followed by the second uniqueDesignation modifier. They are now labeled only with their own abbreviation, followed by the first uniqueDesignation modifier.

The change affects the following symbols. All of them belong to symbol set 25 (Control Measure); the symbol code is given for each symbol.

  • APP-6D
    • Light Line: 110200
    • Final Coordination Line:140700
    • Limit Of Advance: 140900
    • Line Of Departure: 141100
    • Line Of Contact: 140200
    • Probable Line Of Deployment: 141200
    • Bridgehead Line (BL): 141400
    • Holding Line: 141500
    • Release Line: 141600
  • MIL-STD-2525D
    • Light Line: 110200
    • Final Coordination Line: 140700
    • Limit Of Advance: 140900
    • Line Of Departure / Line Of Contact: 141100
    • Line Of Contact: 140200
    • Probable Line Of Deployment: 141200
    • Bridgehead Line (BL): 141400
    • Holding Line (HL): 141500
    • Release Line: 141600

Upgrade considerationInfrastructure Standards

LCD-14769
The myVRDatakitConverter library has been upgraded to version 2025.10.83126. This upgrade improves the stability of decoding Navisworks files with the TLcdNWDModelDecoder.

Upgrade considerationInfrastructure Standards

Added a dependency on the third party library libwebp. This library is used in the TLcd3DTilesProcessorBuilder to support GLB files using webp texture compression.