Skip to content

PHO-22/#42 add CliLattice orthographic VoxelFrame projection#48

Merged
wow-miley merged 1 commit into
mainfrom
miley/pho-22-clilattice-orthographic-voxelframe-lumosterminalframe
May 25, 2026
Merged

PHO-22/#42 add CliLattice orthographic VoxelFrame projection#48
wow-miley merged 1 commit into
mainfrom
miley/pho-22-clilattice-orthographic-voxelframe-lumosterminalframe

Conversation

@wow-miley
Copy link
Copy Markdown
Contributor

Summary

I added CliLattice, an orthographic projection that turns a VoxelFrame into a LumosTerminalFrame per PHO-22: voxel (x, y) maps to character cells, z drives occlusion priority, zero-scale voxels are skipped, and a 10-step luminance ramp (@%#*+=-:. ) is keyed on the winning voxel's scale with sRGB-to-OKLab forwarding for color. Ambient and glyph state pass through unchanged.

Unit tests cover the constructor guards, zero-scale and z-priority aggregation, the luminance ramp endpoints/midpoint/clamp, aspect-ratio Y-compression, determinism, and 40×20 ASCII snapshots for all five atmosphere presets — the snapshot helper lifts voxelGap to 1.0 because the canonical 0.05 value (tuned for 3D cube renderers) maps every voxel to space on the literal scale ramp.

Closes #42 / PHO-22.

Test plan

  • ./gradlew jvmTest (full suite passes)
  • ./gradlew ktlintFormat (no remaining diffs)

🤖 Generated with Claude Code

Project VoxelFrame to LumosTerminalFrame via orthographic mapping of
voxel (x, y) to character cells, with z-priority occlusion and a
10-step luminance ramp keyed on voxel scale. Passes ambient and glyph
state through unchanged so the renderer can use them downstream.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@wow-miley wow-miley merged commit fc3ffd8 into main May 25, 2026
2 checks passed
@wow-miley wow-miley deleted the miley/pho-22-clilattice-orthographic-voxelframe-lumosterminalframe branch May 25, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CliLattice — orthographic VoxelFrame → LumosTerminalFrame projection

1 participant