
Pulsar Lighting Engine
Bringing a Starlight-based lighting engine to CleanroomLoader
Автор: pepe_yu9004обновлён 16 окт. 2026 г.
Оптимизация
Описание
Pulsar Lighting Engine
This is a mod exclusively for Cleanroom. It requires Java 25 and Cleanroom 0.6.10 or later.
Pulsar is an asynchronous lighting engine built for Cleanroom. It reimplements Starlight-style algorithms for Cleanroom and runs lighting calculations on separate threads.
Requirements
Features
- Runs server-side light propagation on separate threads.
- Batches large groups of block changes instead of processing lighting separately for every edit.
- Caches light data in each chunk's NBT to avoid unnecessary full relights.
- Keeps Vanilla's block-light and sky-light data synchronized, so removing Pulsar does not corrupt your world.
- Includes various lighting bug fixes and quality-of-life improvements.
- Adds natural lighting to Thaumcraft crystals.
- Fully compatible with rendering mods such as Celeritas, Actinium, and Nothirium.
Fixed Bugs
- MC-92
- MC-1531 — smooth lighting across painting tile boundaries.
- MC-3329
- MC-80966
- MC-104532
- MC-116690
- MC-117067
- MC-117094
- MC-249343
Supported Mods
- Celeritas: fixes lighting bugs involving stairs and slabs.
- Fluidlogged API
- Depths Update: supports dimensions extending below Y=0 or above Y=255.
- JSON Paintings: fixes smooth-lighting bugs affecting paintings.
Incompatible
- Alfheim
- Phosphor for Forge
- Hesperus
- Other Starlight backports or mods that replace or rewrite the lighting engine
- The standard edition of The Aether II, which bundles Phosphor. Use The Aether II: Phosphor Not Included instead.
Unsupported or Untested
- CubicChunks
- OptiFine
Performance
Pulsar 0.5.0 Benchmarks
Block Placement and Removal

Sky Opening and Closing

Server Load During Continuous Editing
These values measure main-thread MSPT. Async worker CPU time is not included.

Flat Terrain Generation

Travel in a Flat World

Credits
- Starlight by Spottedleaf: the algorithms on which Pulsar is based.
- SuperNova by GTNewHorizons: an RGB lighting engine inspired by Starlight.
- Alfheim by Red Studio: a reference for directional neighbor brightness, liquid and emissive-block rendering, and light-only chunk packet handling.
- CleanroomModTemplate, TokenEnvoy, and CleanroomVersioning by CleanroomMC.
AI Disclosure
Pulsar uses LLM assistance in the following areas:
- Some code: primarily understanding and implementing algorithms.
- Translation and writing: translating into other languages and generating documentation.
License
Pulsar is licensed under the LGPL-3.0.
Последние версии
Все версии →beta
Pulsar Lighting Engine 0.5.2
0.5.216 окт. 2026 г.204Minecraft: 1.12.2forge
Что нового
## [0.5.2]
### Fixed
- Prevent initial chunk packets from waiting indefinitely with Fluidlogged API.
Skip vanilla's redundant random player lighting repair request, which otherwise
creates new pending samples before every send attempt. Block/fluid updates and
the contextual-light gate used by Thaumcraft crystals remain active.
beta
Pulsar Lighting Engine 0.5.1
0.5.115 окт. 2026 г.65Minecraft: 1.12.2forge
Что нового
## [0.5.1]
### Fixed
- Wait for pending contextual samples and nearby lighting before initial chunk
transmission, including players joining an already-sent chunk. Preserve
initial-packet, entity-tracking and Forge chunk-watch event ordering, and
cancel deferred sends when players leave.
- Rebuild Pulsar lighting after Chocolate Quest Repoured bulk dungeon writes,
including the affected neighboring chunks. Delay relight refresh packets
until neighboring work has finished.
- Include requested absent sections in partial light refreshes even when their
light is now default, so stale client light arrays are reset.
- Invalidate older lighting caches (version 13); previously saved incorrect CQR
lighting is recalculated when its chunks next load.
### Changed
- Collect pending contextual light positions in primitive, atomically detached
batches, avoiding boxed requests and per-tick set copying/removal. Iterate
those batches without boxing and keep callbacks outside the producer monitor.
**Full Changelog**: https://github.com/Sumire-Labs/Pulsar/compare/0.5.0...0.5.1
beta
Pulsar Lighting Engine 0.5.0
0.5.012 окт. 2026 г.66Minecraft: 1.12.2forge
Что нового
### Changed
- Resolve sky source-face exclusions once per queue entry, retaining the encoded
direction order and all sided/contextual/fluid behavior.
- Specialize block propagation through verified plain air, avoiding generic
absorption, emission and sided-flag work after the existing level guards.
- Keep a just-active shared worker available for a bounded 5 microseconds for
rapid follow-up work, without holding dispatcher or queue monitors.
- Claim paired same-chunk light work after the first lane finishes, so later
notifications can join the queued partner batch while the existing 5x5
reservation remains held.
- Introduce managed Pulsar Config Version 2. Missing or mismatched versions
regenerate the whole config with current defaults before settings are loaded;
matching versions retain custom settings.
- Default server lighting configs to automatic shared-pool sizing (-1),
including migration from older configs, and document restart requirements.
- Expose dedicated-worker batch time, unload lighting wait time, idle engine
cache size and statistics log interval with bounded values and config comments.
- Optimize light propagation, source scanning, skylight updates and chunk-map
lookups to reduce allocation and redundant work.
- Track contextual TileEntity light changes each tick, keeping Mod callbacks on
the world thread.
- Coalesce client render updates (`features.coalesceClientRenderUpdates`) and
alternate sky/block tasks within a shared soft budget
(`features.clientLightBudgetMs`, default 2 ms).
- Add a configurable shared server lighting pool
(`features.experimentalServerLightThreads`, default `-1` selects
CPU/3 workers), with nearby-task exclusion and paired sky/block scheduling.
- Add opt-in shared-pool range relighting (`experimentalRangeRelight`, default
off), with world-wide job exclusion and generation-safe publication.
- Update lighting statistics once per world tick, with dimension IDs and more
detailed task, client and contextual-sampling timings.
- Share a 10 ms lighting wait allowance across chunk unloads per world tick;
unfinished lighting is invalidated for the next load.
### Fixed
- Fix stale or incorrect skylight after dense edits and changes to opaque or
shaped blocks, including across chunk boundaries.
- Preserve block light in absent sections when sending full or partial chunks.
- Recheck light-relevant block changes and include the center chunk's Fluidlogged
capability during initial lighting.
- Prevent light-array publication after chunk unload and exclude unfinished
lighting from cache saves. Lighting cache version is now 12; older caches
are relit when their chunks next load.
### Removed
- Remove the Pulsar Colored Lighting Addon backend API and integration hooks.
Pulsar now uses its built-in scalar engines.
**Full Changelog**: https://github.com/Sumire-Labs/Pulsar/compare/0.4.0...0.5.0
beta
Pulsar Lighting Engine 0.4.0
0.4.05 окт. 2026 г.125Minecraft: 1.12.2forge
beta
Pulsar Lighting Engine 0.3.2
0.3.224 сент. 2026 г.121Minecraft: 1.12.2forge
Что нового
## Fixed
- Fixed a bug where multi-blocks were duplicated within the world
**Full Changelog**:
https://github.com/Sumire-Labs/Pulsar/compare/0.3.1...0.3.2
beta
Pulsar Lighting Engine 0.3.1
0.3.111 сент. 2026 г.91Minecraft: 1.12.2forge
Что нового
## [0.3.1]
### Changed
- Added Natural Lighting for Thaumcraft 6 Crystal
### Known Issues
- Immersive Engineering multiblocks multiply #14 This will be fixed in version 0.3.2 or 0.4.0 (the next release).
### Note
I'll be busy for a while, so updates may be on hold for about 1 to 2 weeks.
**Full Changelog**:
https://github.com/Sumire-Labs/Pulsar/compare/0.3.0...0.3.1
beta
Pulsar Lighting Engine 0.3.0
0.3.07 сент. 2026 г.39Minecraft: 1.12.2forge
Что нового
## [0.3.0]
### Changed
- Reduced unnecessary lighting work by queuing light checks only for the
requested light type (sky light or block light).
- Kept batches of updates within a single vertical block column on the
incremental skylight update path, avoiding unnecessary full skylight rebuilds.
### Fixed
- Fixed water and other liquids losing their configured light attenuation
through automatic face-transparency handling. Water now uses its vanilla
attenuation of 3 instead of 1.
- Fixed weakened skylight propagating downward without further attenuation,
including through empty sections.
- Fixed swapped block-light and sky-light channels in smooth painting rendering,
which could make paintings appear dark near torches at night. The correction
applies to both vanilla paintings and JSON Paintings
([#12](https://github.com/Sumire-Labs/Pulsar/issues/12)).
beta
Pulsar Lighting Engine 0.2.9
0.2.931 авг. 2026 г.12Minecraft: 1.12.2forge
Что нового
## Fixed
* fix(light): sync live section data before chunk packets by @Sosea1 in https://github.com/Sumire-Labs/Pulsar/pull/11
## New Contributors
* @Sosea1 made their first contribution in https://github.com/Sumire-Labs/Pulsar/pull/11
**Full Changelog**: https://github.com/Sumire-Labs/Pulsar/compare/0.2.8...0.2.9
beta
Pulsar Lighting Engine 0.2.8
0.2.829 авг. 2026 г.22Minecraft: 1.12.2forge
Что нового
### Fixed
- #10
**Full Changelog**:
https://github.com/Sumire-Labs/Pulsar/compare/0.2.7...0.2.8
beta
Pulsar Lighting Engine 0.2.7
0.2.728 авг. 2026 г.30Minecraft: 1.12.2forge
Что нового
### Changed
- The minimum system requirements have been updated to CleanroomLoader 0.6.10 Alpha.
- Migrated from Mixinbooter to CleanMix (Mixinbooter 11.x).
**Full Changelog**:
https://github.com/Sumire-Labs/Pulsar/compare/0.2.6...0.2.7