Skip to content

v2.4.0

Choose a tag to compare

@github-actions github-actions released this 23 Mar 02:38
· 67 commits to main since this release

What's Changed

Changes since v2.3.0:

Features

  • feat(build): add Linux platform support to Makefile (993dcd8)
  • feat(lighting): integrate multi-light loop, checker and bump hooks (262fd9a)
  • feat(bump): add XPM bump map with deferred loading and normal perturbation (5b631df)
  • feat(checker): add checkerboard texture pattern with parser integration (a88c714)
  • feat(cone): add cone object with intersection, parsing, and manipulation (2436027)
  • feat(light): implement multi-spot light system with per-light color (699450e)
  • feat(camera): add yaw rotation around Y-axis with KEY_1/KEY_3 (6b789fd)
  • feat(model): extend data model for cone, textures, and multi-light (c123865)

Bug Fixes

  • fix(ray): move intersect_cone_body prototype to ray.h (c3aac9d)
  • fix(window): add Linux mlx_destroy_display cleanup (2c9a831)
  • fix(shadow): use ceiling division for per-light sample adjustment (1d0ea2f)
  • fix(utils,bvh_vis): NaN guards, buffer sizes, traversal safety (8c5cebb)
  • fix(ray): zero-normal safety for cylinder and cone intersection (5c08c2f)
  • fix(hud): buffer overflow, bounds check, and NaN safety (a057a36)
  • fix(build): deduplicate libft clean, MLX dependency, bonus docs (7fa1d90)
  • fix(window): camera pitch clamp, asin domain, HUD repush, cleanup (62696a2)
  • fix(spatial): AABB NaN safety, RAY_T_MIN constants, remove dead struct (76cd1d9)
  • fix(texture): checkerboard tile aspect, bump map local-space UV (6fdc463)
  • fix(hud): light_count guard, toggle repaint, format rounding (7677155)
  • fix(parser): INT_MIN handling, line overflow, inf guard, validation (7350264)
  • fix(shadow): tangent-plane offsets, safe inv_dir, remove dead config API (fee03dd)
  • fix(ray): cylinder t2 fallback, fabs(a) guard, cone/sphere solver constants (702c74c)
  • fix(spatial,build): NaN AABB, BVH null child, headers, Makefile deps (a6b47a0)
  • fix(parser,hud,render): leaks, bzero init, timing, format safety (6698c1d)
  • fix(window): gimbal lock, rodrigues, expose callback, codec, dead code (9bbb252)
  • fix(core): P0 runtime bugs — asin clamp, color bound, far-root, epsilon (14d807b)
  • fix(memory): prevent bump_path leak on parse failure and error paths (a932aa4)
  • fix(ci): redirect clone_wiki log output to stderr (50fb48f)

Documentation

  • docs: update version references to v2.4.0 (f42283b)
  • docs: update all docs and wiki to match v2.4.0 codebase (dc88801)
  • docs: fix code-doc mismatches and add missing struct definitions (bc5b522)
  • docs(hud): fix t_hud_state struct and pagination reference (010c534)
  • docs(spatial): add midpoint fallback guarantee comment (22bc7c2)
  • docs(lighting): fix shadow sample adjustment formula to ceiling division (37b1514)
  • docs(architecture): fix intersection function name to intersect_object_new (ba53742)
  • docs(build): fix fclean inline description to include library cleanup (289a22f)
  • docs(build,lighting,changelog): fix 3 code-doc mismatches (78b7ec2)
  • docs(structs,architecture,hud,window): fix 6 code-doc mismatches (0a07c69)
  • docs(hud): fix scene info section to match actual HUD output (ee0d849)
  • docs(spatial,lighting,hud): fix shadow threshold and HUD description (daf859d)
  • docs(scene-format): fix test scene count 35 → 36 (5b459f8)
  • docs(ray): fix intersection threshold constant EPSILON → RAY_T_MIN (0a8ff90)
  • docs(structs,window): sync camera Euler angle refactor (9e2f537)
  • docs(report): update camera Euler refactor report to final state (257050a)
  • docs(review): add v5 senior code review report (38 findings) (24a19f9)
  • docs(changelog): fix object ID format and render flag name (589b3d8)
  • docs(build): fix MiniLibX path description and CI workflow count (3ebd314)
  • docs(architecture): fix execution flow, Phong model, and file counts (f524a01)
  • docs(render,hud): fix pixel timing conditionality and HUD metrics (379d5cb)
  • docs(window): update init/cleanup flow, key bindings, and file table (2b9d0f8)
  • docs(structs): update data structures for multi-light, cone, and textures (4097920)
  • docs(parser,scene-format): add cone/bonus parsing and fix validation rules (bfb4be5)
  • docs(lighting): update multi-light Phong model and shadow system (4582676)
  • docs(spatial): fix BVH build algorithm, traversal flow, and object IDs (4ad0bf1)
  • docs(ray): fix cylinder caps and add cone intersection documentation (be2aa73)
  • docs(spec): add 034-full-features specification documents (924cb49)
  • docs: fix debounce FSM and render loop diagram in Module-Render (a343bf7)
  • docs: fix Wiki discrepancies found in code audit (a901229)

Other Changes

  • chore(build): update Makefile for all file renames and directory moves (3c130bc)
  • refactor(main): extract init_scene and load_bump_maps helpers (51fd5d7)
  • refactor(input): move input_*.c from src/window/ to src/input/ (28baf68)
  • refactor(render): move render_loop.c and render_flags_set.c to src/render/ (d31fb10)
  • refactor(metrics): move metrics_*.c from src/render/ to src/metrics/ (4f7265a)
  • chore(build): update Makefile for renamed and removed files (af73afc)
  • refactor(window): rename window_* to input_*/render_loop and fix debounce (641edc5)
  • refactor(error): add error_print_ctx and consolidate error helpers (7fe78b3)
  • refactor(hud): extract hud_print_line and rename copy_str_to_buf (888f3a1)
  • refactor: remove dead code, unused params, magic numbers (94273ff)
  • refactor(camera): Euler angle pitch/yaw for smooth 360° rotation (5844818)
  • refactor(texture): extract shared get_tangent() to texture_utils.c (71a423b)
  • refactor(dead-code): remove unused functions, types, and declarations (0867a49)
  • chore(build): add bonus rule and new sources, update HUD for cone/multi-light (e7741cc)
  • refactor(infra): clean up BVH total_nodes and split lighting utilities (bb9b842)

Installation

Download the appropriate binary for your platform:

  • Linux: miniRT-linux-x86_64
  • macOS: miniRT-macos-arm64

Make it executable: chmod +x miniRT-*

Run with a scene file: ./miniRT-* scenes/test_scene.rt