I was just able to reproduce this on the Fedora release build for 5.1.2. I had to uncheck all the options, and it was set to meters. When I had the options checked it wouldn't crash. I tried briefly on the HEAD of the 5.1 branch, but it didn't crash. I was running that as a debug build though, so it could be this is release build specific. It crashes on: /usr/include/c++/9/bits/stl_vector.h:1042: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = int&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. The relevant backtrace is: #0 0x00007ffff6cafe75 in raise () at /lib64/libc.so.6 #1 0x00007ffff6c9a895 in abort () at /lib64/libc.so.6 #2 0x00007fffd6cd8a28 in std::__replacement_assert(char const*, int, char const*, char const*) (__file=__file@entry=0x7fffd7815558 "/usr/include/c++/9/bits/stl_vector.h", __line=__line@entry=1042, __function=__function@entry=0x7fffd78218d8 "std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = int&;"..., __condition=__condition@entry=0x7fffd78155a8 "__builtin_expect(__n < this->size(), true)") at /usr/include/c++/9/x86_64-redhat-linux/bits/c++config.h:2510 #3 0x00007fffd6efbd94 in std::vector >::operator[](unsigned long) (__n=0, this=0x7fffffff74d0) at /usr/src/debug/kicad-5.1.2-1.fc30.x86_64/pcbnew/exporters/export_vrml.cpp:1853 #4 0x00007fffd6efbd94 in create_vrml_shell(IFSG_TRANSFORM&, VRML_COLOR_INDEX, VRML_LAYER*, double, double) (PcbOutput=..., colorID=VRML_COLOR_TIN, layer=, top_z=, bottom_z=) at /usr/src/debug/kicad-5.1.2-1.fc30.x86_64/pcbnew/exporters/export_vrml.cpp:1833 #5 0x00007fffd6efc6e8 in write_layers(MODEL_VRML&, char const*, std::ofstream*, BOARD*) (aModel= ..., aFileName=0x555557eb5cb0 "/home/imcinerney/Documents/dev/kicad/testItems/BugSpecific/1838448/00_pr_invest/00_pr_invest.wrl", aOutputFile=aOutputFile@entry=0x0, aPcb=) at /usr/src/debug/kicad-5.1.2-1.fc30.x86_64/pcbnew/exporters/export_vrml.cpp:525 #6 0x00007fffd6f0260a in PCB_EDIT_FRAME::ExportVRML_File(wxString const&, double, bool, bool, bool, wxString const&, double, double) (this=, aFullFileName=..., aMMtoWRMLunit=, aExport3DFiles=, aUseRelativePaths=, aUsePlainPCB=, a3D_Subdir=..., aXRef=, aYRef=) at /usr/include/wx-3.0/wx/buffer.h:157 #7 0x00007fffd6d611f8 in PCB_EDIT_FRAME::OnExportVRML(wxCommandEvent&) () at /usr/src/debug/kicad-5.1.2-1.fc30.x86_64/pcbnew/dialogs/dialog_export_vrml.cpp:249 #8 0x00007ffff746df0b in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /lib64/libwx_baseu-3.0.so.0 #9 0x00007ffff746e013 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () at /lib64/libwx_baseu-3.0.so.0 #10 0x00007ffff746e380 in wxEvtHandler::TryHereOnly(wxEvent&) () at /lib64/libwx_baseu-3.0.so.0 #11 0x00007fffd7668a00 in EDA_BASE_FRAME::ProcessEvent(wxEvent&) (this=0x5555574e1270, aEvent=...) at /usr/src/debug/kicad-5.1.2-1.fc30.x86_64/common/eda_base_frame.cpp:173 #12 0x00007ffff746e1e3 in wxEvtHandler::DoTryChain(wxEvent&) () at /lib64/libwx_baseu-3.0.so.0 #13 0x00007ffff746e4b1 in wxEvtHandler::ProcessEvent(wxEvent&) () at /lib64/libwx_baseu-3.0.so.0 #14 0x00007ffff7a1223a in wxWindowBase::TryAfter(wxEvent&) () at /lib64/libwx_gtk3u_core-3.0.so.0 #15 0x00007ffff746e23b in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /lib64/libwx_baseu-3.0.so.0 #16 0x00007ffff79c205e in wxMenuBase::SendEvent(int, int) () at /lib64/libwx_gtk3u_core-3.0.so.0