Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 17, 2025

Generation crashes at 3-15% when scale factors < 1.0 cause grid_width or grid_height to truncate to zero, leading to division-by-zero and out-of-bounds array access.

Changes

src/elevation_data.rs

  • Enforce minimum grid dimensions of 1: (scale_factor_x as usize).max(1)
  • Guard apply_gaussian_blur(), fill_nan_values(), and filter_elevation_outliers() against empty grids

src/ground.rs

  • Guard get_data_coordinates() against division by zero
  • Add bounds checks in interpolate_height() before array access
  • Return ground_level as fallback when elevation data is invalid

Tests

  • Cover empty grids, zero dimensions, and partial zero dimensions
  • Verify graceful degradation to flat terrain

Example

Before:

let grid_width: usize = scale_factor_x as usize;  // 0 when scale < 1.0
let x_ratio = coord.x as f64 / data.width as f64;  // div by zero
data.heights[z][x]  // out of bounds panic

After:

let grid_width: usize = (scale_factor_x as usize).max(1);
if data.width == 0 { return (0.0, 0.0); }
if z >= data.heights.len() || x >= data.heights[z].len() {
    return self.ground_level;
}
Original prompt

This section details on the original issue you should resolve

<issue_title>[BUG] Generation stops at 3%</issue_title>
<issue_description>Здраствуйте,
У меня возникает проблема при попытке сгенерировать участок среднего или большого размера в Arnis. Небольшие области 1-2 здания генерируются нормально, но когда я увеличиваю выделение процесс останавливается на 3% а бывало такое что доходило до 15% и программа вылетала. С этой проблемой я сталкивался как на версии 2.3.0 так и сейчас на 2.3.1
Операционная система Windows 10, я пытался сгенерировать один из районов Москвы а сейчас свой район из города Ульяновск в тоже время я ограничивал настройки отключал генерацию интерьера убавлял масштаб и прибавлял время секунд заливки проблема сохраняется.
Я нашел файлы логов, но к сожалению, не уверен, какие именно из них нужны. Они находятся в папке:C:\Users\Nikita\AppData\Local\com.louisdev.arnis\logs.
В логах я несколько раз видел ошибку, которая выглядела так: [arnis : : gui] [ERROR] Application panicHookInfo { playload : Any { . . } , location : Location { file : "src\ground.rs", line : 27, column : 14 }, can_unwind : true, force_no_backtrace : false }

Буду очень благодарен за любую помощь! Спасибо!
</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits November 17, 2025 21:16
…rids

Co-authored-by: louis-e <44675238+louis-e@users.noreply.github.com>
Co-authored-by: louis-e <44675238+louis-e@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix issue with generation stopping at 3% Fix panic on zero-dimension elevation grids during world generation Nov 17, 2025
Copilot AI requested a review from louis-e November 17, 2025 21:23
@DexSnic
Copy link

DexSnic commented Nov 21, 2025

и причем, я сейчас проверил что когда я в режим генерации выбираю только рельеф и выделяю большую или среднюю область загрузка генерации не останавливается на 3-15% а нормально генерируется и в мир можно заходить, а когда я выбираю объекты + рельеф то генерация просто тупо замирает на 3%

Repository owner deleted a comment from github-actions bot Nov 22, 2025
@DexSnic
Copy link

DexSnic commented Nov 22, 2025

retrigger-benchmark

@github-actions
Copy link

⏱️ Benchmark run finished in 1m 9s
🧠 Peak memory usage: 935 MB

📈 Compared against baseline: 69s
🧮 Delta: 0s
🔢 Commit: 83e9a63

🟢 Generation time is unchanged.

You can retrigger the benchmark by commenting retrigger-benchmark.

@dxrkinfuser44
Copy link

и причем, я сейчас проверил что когда я в режим генерации выбираю только рельеф и выделяю большую или среднюю область загрузка генерации не останавливается на 3-15% а нормально генерируется и в мир можно заходить, а когда я выбираю объекты + рельеф то генерация просто тупо замирает на 3%

i google translated this so i wouldnt know myself if its 100% correct but that means the building generation is off then no?

@DexSnic
Copy link

DexSnic commented Nov 23, 2025

и причем, я сейчас попросился к тому, чтобы в ревности генерации выбивали только рельеф и выделили большущих людей из выбиринтов на 3-15% и в их обиходе, а не в рицинусах

я перевел это в Google, чтобы не знать себя, верно ли это на 100%, но это означает, что поколение зданий отключено, тогда нет?

извините я вас не понял, можeте подробнее?

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.

[BUG] Generation stops at 3%

4 participants