-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
954 lines (905 loc) · 52.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="google-site-verification" content="CMKPT92L4h6JYyYqIw0VBlumjHMl5_EwVO82AzemNNQ" />
<title>Nathan Crews Software Development Portfolio</title>
<meta name="description" content="nathan crews software portfolio">
<meta name="keywords"
content="client-side, image rendering, 2D, 3D, map, geolocate, GPS, drone, survey, HTML, CSS, JavaScript">
<meta name="keywords"
content="cesium, MapBoxJS, leaflet, geospatial, GIS, application, development, mapping, photogrammetry, civil engineer, land development">
<meta name="keywords"
content="arial, imagery, memory, memories, where, was, picture, taken, photo, jpeg, jpg, png, map, mapper">
<meta name="keywords"
content="java, script, html, css, programming, application, nathan, crews, software, development">
<meta name="author" content="Nathan Crews">
<link rel="icon" type="image/x-icon" href="/images/favicon.ico">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="styles/fonts.css" />
<link rel="stylesheet" href="styles/slideshow.css" />
<link rel="stylesheet" href="styles/message.css" />
<link rel="stylesheet" href="styles/portfolio-styles.css" />
<script src="./src/portfolio.js" type="module" defer></script>
<script src="./src/slideshow.js" defer></script>
</head>
<body>
<div id="about" class="active-page page about-page">
<div class="about-container">
<div class="about-info">
<img src="./images/projects/nathan-speaker.webp" class="myphoto" alt="Nathan Crews">
<p class="about-name myname">Nathan Crews</p>
<br />
<div class="button">
<a href="https://www.linkedin.com/in/nathancrews4" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/linkedin-logo.svg" width="18px" height="18px" /> LinkedIn
</span>
</a>
</div>
<div class="button">
<a href="https://www.youtube.com/@nathancrews" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/utube-logo.svg" width="18px" height="18px" /> Youtube
</span>
</a>
</div>
<div class="button">
<a href="https://github.com/nathancrews" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Github
</span>
</a>
</div>
<div class="button">
<a href="https://sourceforge.net/u/nathancrews/profile/" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/sourceforge-logo.svg" width="18px" height="18px" /> SourceForge
</span>
</a>
</div>
<div class="button">
<a download="NathanCrewsResume2024.pdf" href="./docs/_NathanCrewsResume2024.pdf" rel="noopener"
target="_blank">
<span>
PDF Resume
</span>
</a>
</div>
</div>
<div>
<p class="about-text">I am a professional software engineer with diverse work experience, application design,
and development skills.</p>
<p class="about-text about-text-quote">“Providing quality software solutions - on time, everytime.”
</p>
<div class="outer-container">
<div class="inner-container">
<ul>
<li>
<div>
<details class="my-details">
<summary class="summary-header">Industry Experience</summary>
<div class="inner-content">
<ul>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">Civil Engineering</summary>
<ul class="sub-li-1">
<li>3D Visualization</li>
<li>Road Design</li>
<li>Surface Modeling</li>
<li>Photogrammetry</li>
<li>COGO</li>
<li>Hydrology</li>
<li>Data Exchange</li>
<li>AutoCAD Civil 3D</li>
</ul>
</details>
</li>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">Web Applications</summary>
<ul class="sub-li-1">
<li>Frontend Mapping Applications</li>
<li>Web UI Components</li>
<li>Backend map processing</li>
<li>Backend image processing</li>
</ul>
</details>
</li>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">Game Development</summary>
<ul class="sub-li-1">
<li>Unreal Engine 5</li>
<li>Unreal C++ plugins</li>
<li>Unreal Blueprint</li>
</ul>
</details>
</li>
</ul>
<ul>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">Land Surveying</summary>
<ul class="sub-li-1">
<li>3D Visualization</li>
<li>COGO</li>
<li>Surface Modeling</li>
<li>Photogrammetry</li>
<li>Data Exchange</li>
<li>AutoCAD Civil 3D</li>
</ul>
</details>
</li>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">GIS/Mapping</summary>
<ul class="sub-li-1">
<li>3D Visualization</li>
<li>OGC web mapping</li>
<li>Geospatial Data Intergration</li>
<li>Photogrammetry</li>
<li>Esri ArcGIS</li>
<li>AutoCAD Map</li>
</ul>
</details>
</li>
</ul>
<ul>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">Electric Supply Services</summary>
<ul class="sub-li-1">
<li>Sensor Data processing</li>
<li>Billing data processing</li>
<li>Customer data processing</li>
</ul>
</details>
</li>
<li>
<details class="my-details">
<summary class="summary-header-details my-details-sub">Open Standards Participation
</summary>
<ul class="sub-li-1">
<li>Founder <a href="http://www.landxml.org" target="_blank">LandXML.org</a> (Principal
XML
Schema Architect)</li>
<li><a href="https://www.iso.org/committee/52172.html" target="_blank">TC-127 Earth-moving
machinery</a> (Technical Expert)</li>
<li><a
href="https://ecma-international.org/publications-and-standards/standards/ecma-388/"
target="_blank">ECMA-388 OpenXPS</a> (Technical Expert)</li>
<li><a href="https://www.ogc.org/" target="_blank">Open Geospatial Consortium</a>
(Technical
Expert)</li>
</ul>
</details>
</li>
</ul>
</div>
</details>
</div>
</li>
</ul>
<ul>
<li>
<div>
<details class="my-details">
<summary class="summary-header">Work History</summary>
<div class="inner-content">
<ul>
<li>
<details class="my-details">
<summary class="sub-li-2">
<div id='ncrews-details-btn' class="button li-button">NCrews Software</div>
<details id="ncrews-details" class="project-details">
<div class="message-text">Position: Senior Software Engineer</div>
<div class="message-text">December 2023 – Present</div>
<div class="message-text">Description: Create and customize open source/commercial
software
solutions. image mapping web applications (frontend and backend). 3D visualization
applications of various formats, image manipulation,
multi-threading, desktop applications and Windows shell extensions.
</div>
<div class="message-text">Languages: C++/C, C#, JavaScript, HTML/CSS, HTMX, NodeJS</div>
<div class="message-text">Build Tools: Visual Studio/Code 2022, CMAKE, make, gcc, XCode
</div>
<div class="message-text">Platforms: Windows, Browser</div>
<div class="message-text">Frameworks: Win API/ATL/Shell/.NET, HTML DOM, CGI, NodeJS, OGC
WMS, OGC WFS</div>
<div class="message-text">Libraries: STL, OpenGL, Intel TBB, MS GLTF SDK, Open3D, GLSL,
LASlib (LIDAR point
cloud data), GDAL, PDAL</div>
<div class="button">
<a href="https://github.com/nathancrews" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px"
height="18px" /> Github
</span>
</a>
</div>
</details>
</summary>
</details>
</li>
<li>
<details class="my-details">
<summary class="sub-li-2">
<div id='carlson-details-btn' class="button li-button">Carlson Software</div>
<details id="carlson-details" class="project-details">
<div class="message-text">Position: Team Lead/Senior Software Engineer</div>
<div class="message-text">Jan 2014-Nov 2023</div>
<div class="message-text">Hydrology Engineer Game: Provided C++/Blueprints game backend
and UI for engineering
hydrology elements for a new learning game based on Unreal Engine 5.
Precision 3D Team: Lead software development a new 3D CAD platform for civil engineers
and land surveyors.
Key features include drone photogrammetric/LIDAR point cloud processing,
design surface modeling and data import/export.
</div>
<div class="message-text">Languages: C++/C, C#, Blueprint</div>
<div class="message-text">Build Tools: Visual Studio, Unreal Build Tools</div>
<div class="message-text">Platforms: Windows, Unreal Engine 4/5</div>
<div class="message-text">Frameworks: Win API/ATL/Shell/.NET, Qt, Unreal plugin, OGC
WMS, OGC WFS, Google Maps</div>
<div class="message-text">Libraries: STL, OpenGL, Intel TBB, Qt, MS GLTF SDK, Open3D,
GLSL, LASlib (LIDAR point
cloud data), GDAL, PDAL, Point Cloud Tools (PCL)</div>
<div class="nested-buttons">
<div class="button nested-button">
<a href="https://carlsongaming.com/" rel="noopener" target="_blank">Hydrology
Engineer Game</a>
</div>
<div class="button nested-button">
<a href="https://carlsonsw.com/product/carlson-precision-3d" rel="noopener"
target="_blank">Precision 3D</a>
</div>
</div>
</details>
</summary>
</details>
</li>
<li>
<details class="my-details">
<summary class="sub-li-2">
<div id='maine-details-btn' class="button li-button">Maine Central Power/Itron Systems
</div>
<details id="maine-details" class="project-details">
<div class="message-text">Position: Senior Software Engineer</div>
<div class="message-text">Jan 2012-Jul 2015</div>
<div class="message-text">Description: Primary responsibilities focused on creating
custom high performance C++ and C# .NET distributed
computing enterprise solutions for electric and water utilities.
Windows Server Enterprise environment using Oracle and SQL Server databases with C#
and ASP.NET application code.
Strong debugging and performance optimization skills.
</div>
<div class="message-text">Languages: C++/C, C#, SQL, XML</div>
<div class="message-text">Build Tools: Visual Studio</div>
<div class="message-text">Platforms: Windows</div>
<div class="message-text">Frameworks: Win API/.NET, SQLServer</div>
<div class="message-text">Libraries: .NET, Itron API</div>
</details>
</summary>
</details>
</li>
<li>
<details class="my-details">
<summary class="sub-li-2">
<div id='logos-details-btn' class="button li-button">Logos Technologies</div>
<details id="logos-details" class="project-details">
<div class="message-text">Position: Senior Software Engineer</div>
<div class="message-text">Description: Military Drone Video Visualization: Created 3D
NASA World Wind based client/server TCP/IP socket H.264
streaming video playback software using CUDA accelerated H.264 encoding Linux server
to a Windows 3D platform client using C++, C and Java
</div>
<div class="message-text">Languages: C++/C, Java, CUDA</div>
<div class="message-text">Build Tools: Visual Studio, Eclispe, gcc</div>
<div class="message-text">Platforms: Windows, Linux</div>
<div class="message-text">Frameworks: Win, Linux</div>
<div class="message-text">Libraries: STL, Boost, Java libs</div>
</details>
</summary>
</details>
</li>
<li>
<details class="my-details">
<summary class="sub-li-2">
<div id='adesk-details-btn' class="button li-button">Autodesk, Inc.</div>
<details id="adesk-details" class="project-details">
<div class="message-text">Senior Principle Software Engineer</div>
<div class="message-text">Description: Extensive 2D and 3D graphics experience using
OpenGL, AutoCAD, Revit and 3D Studio MAX.
Projects: Green Building Studio Photovoltaic Energy Analysis backend development.
AutoCAD Civil 3D, gbXML, OpenXPS and LandXML.org, ECMA-388 OpenXPS, LandXML.org,
OGC.org standards participation.</div>
<div class="message-text">Languages: C++/C/C#, .NET, LISP, Java, ASP.NET, XSLT, XML
</div>
<div class="message-text">Build Tools: Visual Studio</div>
<div class="message-text">Platforms: Windows</div>
<div class="message-text">Frameworks: MFC, AutoCAD API</div>
<div class="message-text">Libraries: STL, ATL, OpenGL, Boost, Java libs</div>
</details>
</summary>
</details>
</li>
</ul>
</div>
</details>
</div>
</li>
</ul>
</div>
<div class="inner-container">
<ul>
<li>
<div>
<details class="my-details">
<summary class="summary-header">Programming Languages</summary>
<div class="inner-content">
<ul class="sub-li-1">
<li>C/C++</li>
<li>C#</li>
</ul>
<ul class="sub-li-1">
<li>JavaScript</li>
<li>HTML/CSS</li>
</ul>
<ul class="sub-li-1">
<li>GLSL/HSL</li>
<li>Shell/Python Scripting</li>
</ul>
</div>
</details>
</div>
</li>
</ul>
<ul>
<li>
<div>
<details class="my-details">
<summary class="summary-header">Frameworks</summary>
<div class="inner-content">
<ul class="sub-li-1">
<li>Windows API</li>
<li>MFC/.NET</li>
<li>Qt</li>
<li>AutoCAD ARX</li>
<li>Unreal Engine Plugins</li>
</ul>
<ul class="sub-li-1">
<li>WebGL</li>
<li>WebGPU</li>
<li>Open3D</li>
</ul>
<ul class="sub-li-1">
<li>NodeJS</li>
<li>CGI</li>
<li>HTMX</li>
<li>WASM</li>
</ul>
<ul class="sub-li-1">
<li>LeftletJS</li>
<li>MapBoxJS</li>
<li>CesiumJS</li>
</ul>
</div>
</details>
</div>
</li>
</ul>
</div>
<div class="inner-container">
<ul>
<li>
<div>
<details class="my-details">
<summary class="summary-header">OS/Tools/Libraries</summary>
<div class="inner-content">
<ul class="sub-li-1">
<li>Windows</li>
<li>Linux</li>
<li>MacOS</li>
<li>Cross Platform</li>
<li>Chrome</li>
</ul>
<ul class="sub-li-1">
<li>GIT/Perforce/SubVersion</li>
<li>Microsoft Visual Studio</li>
<li>Visual Studio Code</li>
<li>cmake/make/nmake</li>
<li>Qt Design Studio</li>
<li>Eclipse</li>
</ul>
<ul class="sub-li-1">
<li>STL</li>
<li>Boost</li>
<li>Intel TBB</li>
<li>OpenGL/GLEW/GLUT/GLFW</li>
<li>Windows COM/ATL/Shell</li>
<li>Microsoft MFC</li>
<li>Qt API</li>
</ul>
<ul class="sub-li-1">
<li>LASlib</li>
<li>PDAL/GDAL</li>
<li>OpenCV</li>
<li>Point Cloud Tools (PCL)</li>
<li>Many other various libs...</li>
</ul>
</div>
</details>
</div>
</li>
</ul>
</div>
</div>
</div>
<!-- <br /> -->
</div>
</div>
</div>
</div>
<div id="projects" class="page-container">
<!-- <h1 class="page-title">Software Applications Gallery</h1> -->
<div id="project-gallery" class="grid-container projectBox">
<box class="project">
<h3 class="project-title">Photo Map Creator</h3>
<article class="description-text" style="font-size: small;">Quickly maps (MapBoxJS & LeafletJS) photos with GPS
data by dropping photo images files onto the map.
Fine tune the map by Adding, Moving and Deleting photos. Create a map viewer link, anyone with the link can
view (not edit) the shared map.
Supports desktop and mobile browsers.
</article>
<div style="display: flex;flex-direction: column;">
<div id='project-pm-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-pm-details">
<div class="message-text">Browser JavaScript App. Runs client-side only for all file and image processing.
</div>
<div class="message-text">Languages: JavaScript, HTML, CSS</div>
<div class="message-text">Build Tools: VSCode, Chrome, Edge, Safari</div>
<div class="message-text">Platforms: desktop and mobile browsers</div>
<div class="message-text">Framework: DOM JavaScript</div>
<div class="message-text">Libraries: leafletJS, MapBoxJS, CesiumJS, GeoJSON, EXIFReader</div>
<div style="display: block;align-self: center;justify-self: center; border:none">
<div class="button">
<a href="https://github.com/nathancrews/nathancrews.github.io/blob/main" rel="noopener"
target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Source
Code</span>
</a>
</div>
</div>
</div>
</details>
<div id="project-pmc-slides" class="slide-button-caption" data-slide-show-id="project-pmc-slides"
data-slide-show-slide-images="./images/projects/webapps/photomapper-3D.webp,
./images/projects/webapps/photomapper-2D.webp,
./images/projects/webapps/map-set-name.webp,
./images/projects/webapps/save-map.webp,
./images/projects/webapps/save-map-link.webp,
./images/projects/webapps/shared-map.webp" ;
data-slide-show-slide-image-captions="Photos with GPS data in 3D Map (MapBoxJS),
Photos with GPS data in 2D Map (LeafletJS),
Photo Mapper Settings - set the map name to save on local drive and create share link,
Save the map on local drive for later loading and editing,
Create a simple to use map viewer link,
Anyone with the link can view (not edit) the shared map" ;
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-pm-img" src="./images/projects/webapps/photomapper-3D.webp" class="project-image" width="250"
data-slide-show-id="project-pmc-slides" onclick="SlideShow.StartSlideShowFromElemEvent(event)" />
<div class="nested-buttons">
<div class="button nested-button">
<a href="https://youtu.be/3rAOE-som4c" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/utube-logo.svg" width="24px" height="18px" /> Video
</span>
</a>
</div>
<div class="button nested-button">
<a href="https://photomap.nathancrews.com/" rel="noopener" target="_blank">Launch Application</a>
</div>
</div>
</box>
<box class="project">
<h3 class="project-title">Point Cloud Shell Extension</h3>
<article class="description-text">Quickview huge point cloud .LAS/.LAZ files in Windows File Explorer - in seconds. Right
click on
.LAS/.LAZ files to produce thumbnail images.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-pc-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-pc-details">
<div class="message-text">LAS/LAZ Pointcloud Windows Shell Extension: This "quick viewer" shell extension
provides a Windows File Explorer right click menu option to quickly generate 3D preview images for large
and small .las and .laz files. Typical
processing time for 100mb .las 25mb .laz files is about 2 seconds. (Disclaimer: Processing time depends
on compute hardware)</div>
<div class="message-text">Files are processed in parallel using available CPU cores. A second option will
create a merged 3D image for
all selected .las/laz files. Both menu options support multi-file select and directory processing.
</div>
<div class="button">
<a style="display:contents" href="https://buymeacoffee.com/nathancrews/e/256687"
target="_blank">Pre-built Windows x64 installer</a>
</div>
<div class="message-text">Languages: C++, C#</div>
<div class="message-text">Build Tools: Visual Studio 2022</div>
<div class="message-text">Platforms: Windows</div>
<div class="message-text">Framework: Win API/ATL/Shell, .net</div>
<div class="message-text">Libraries: LASLib, PDAL, Open3D, Intel TBB</div>
<div style="display: block;align-self: center;justify-self: center; border:none">
<div class="button">
<a href="https://github.com/nathancrews/NCrewsShellExtensions" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Source
Code</span>
</a>
</div>
</div>
</div>
</details>
<div id="project-pc-slides" class="slide-button-caption" data-slide-show-id="project-pc-slides"
data-slide-show-slide-images="./images/projects/shell_extensions/PointCloudWindowsShellExtension.webp,
./images/projects/shell_extensions/Pointcloud_Preview_Image_Merging.webp,
./images/projects/shell_extensions/Pointcloud_Preview_Image_Viewing.webp,
./images/projects/shell_extensions/Pointcloud_Preview_Image_Directory.webp,
./images/projects/shell_extensions/Pointcloud_Preview_Options.webp"
data-slide-show-slide-image-captions="By File(s): Generate a 3D preview image for .LAS/.LAZ file(s),
Generate a MERGED preview image for selected .LAS/.LAZ file(s),
Sample merged 3D preview image for 15 .LAZ files,
By Directory: Generate All preview images for .LAS/.LAZ files in directory,
Options for .LAS/.LAZ preview image size and format"
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-pc-img" width="250px" src="./images/projects/shell_extensions/Pointcloud_Preview_Image.webp"
class="project-image" data-slide-show-id="project-pc-slides"
onclick="SlideShow.StartSlideShowFromElemEvent(event)" />
<div class="button">
<a href="https://youtu.be/UeFG9bRy0Lk" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/utube-logo.svg" width="24px" height="18px" /> Video
</span>
</a>
</div>
</box>
<box class="project">
<h3 class="project-title">3D Point Cloud Editing</h3>
<article class="description-text">Point cloud loading, merging, cropping, editing, filtering and feature detection (ground, building, poles, curbs, paint lines). Created a point cloud smooth filtering to provide smooth and accurate contours.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-p3d-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-p3d-details">
<div class="message-text">Provides point cloud loading, merging, cropping, editing, filtering and feature detection.</div>
<div class="message-text">Created and used various filters (PCL and custom) for contour smoothing and feature detection: ground, building, poles, trees, vehicles.
Created specialized filtering for paint stripe detection, parking stripes, colored areas, road lane lines and road markings.
Parallel processing using Intel TBB and OpenMP.
</div>
<div class="message-text">Languages: C++, GLSL</div>
<div class="message-text">Build Tools: Visual Studio 2022</div>
<div class="message-text">Platforms: Windows</div>
<div class="message-text">Framework: Win API/ATL/Shell, Qt</div>
<div class="message-text">Libraries: STL, OpenGL, LASLib, PCL, PDAL, Open3D, Intel TBB, boost</div>
</div>
</details>
<div id="project-p3d-slides" class="slide-button-caption" data-slide-show-id="project-p3d-slides"
data-slide-show-slide-images="./images/projects/carlson/p3d Feature extraction.webp,
./images/projects/carlson/finkpark.webp, ./images/projects/carlson/finkpark-results.webp,
./images/projects/carlson/smooth-contours.webp,
./images/projects/carlson/p3d stock pile detection.webp,
./images/projects/carlson/parkinglot1.webp,
./images/projects/carlson/parkinglot1-features.webp,
./images/projects/carlson/surface3Dprinter.webp"
data-slide-show-slide-image-captions="Non-ground feature detection: building/curbs/vehicles/utility poles/signs,
Point cloud parking paint and curb detection,
Results: point cloud parking paint and curb detection,
Advanced point cloud contour smoothing,
Automated stock pile detection,
Point cloud parking paint and curb detection,
Results: point cloud parking paint and curb detection,
Point cloud generated surface model 3D print"
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-p3d-img" width="250px" src="./images/projects/carlson/p3d Feature extraction.webp"
class="project-image" data-slide-show-id="project-p3d-slides"
onclick="SlideShow.StartSlideShowFromElemEvent(event)" />
</box>
<box class="project">
<h3 class="project-title">3D Surface Model Editing/Viz</h3>
<article class="description-text">Surface model editing: point, edge, merging, cropping, smoothing.
Automated surface texturing tool and 3D scene creation with animation. 3D scene visualization tools. Solid modeling tools.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-p3d2-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-p3d2-details">
<div class="message-text">Surface model editing: point, edge, merging, cropping, smoothing.
Solid modeling. Automated surface texturing tool and 3D scene creation with animation.
</div>
<div class="message-text">Languages: C++, GLSL</div>
<div class="message-text">Build Tools: Visual Studio 2022</div>
<div class="message-text">Platforms: Windows</div>
<div class="message-text">Framework: Win API/ATL/Shell, Qt</div>
<div class="message-text">Libraries: STL, OpenGL, LASLib, PCL, PDAL, Open3D, Intel TBB, boost</div>
</div>
</details>
<div id="project-p3d2-slides" class="slide-button-caption" data-slide-show-id="project-p3d2-slides"
data-slide-show-slide-images="./images/projects/carlson/autotexture.webp,
./images/projects/carlson/surface-editing.webp,
./images/projects/carlson/surface-textures.webp,
./images/projects/carlson/solid-modeling.webp,
./images/projects/carlson/visualization.webp,
./images/projects/carlson/viz.webp,
./images/projects/carlson/hydro.webp"
data-slide-show-slide-image-captions="Surface Automated Texture Tools,
Surface Edit Ttools: point/edge/merging/cropping/smoothing,
Advanced Surface Texture Tools,
Solid Modeling,
3D Scene Visualization,
3D Scene Recreation Tools,
Surface Model Hydrology Analysis"
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-p3d2-img" width="250px" src="./images/projects/carlson/surface-editing.webp"
class="project-image" data-slide-show-id="project-p3d2-slides"
onclick="SlideShow.StartSlideShowFromElemEvent(event)" />
</box>
<box class="project">
<h3 class="project-title">GLTF/GLB Shell Extension</h3>
<article class="description-text">In Windows File Explorer, right click on GLTF/GLB files to produce quick
thumbnail images.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-glb-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-glb-details">
<div class="message-text">This Windows shell extension automatically adds thumbnail images to .glb
files in Windows File Explorer. It also provides a right click menu option to generate a 3D preview
images for .gltf files.
Supports multi-file select and directory processing.
</div>
<div class="button">
<a style="display:contents" href="https://buymeacoffee.com/nathancrews/e/255640"
target="_blank">Pre-built Windows x64 installer</a>
</div>
<div class="message-text">Languages: C++, C#</div>
<div class="message-text">Build Tools: Visual Studio 2022</div>
<div class="message-text">Platforms: Windows</div>
<div class="message-text">Framework: Win API/ATL/Shell, .net</div>
<div class="message-text">Libraries: MS GLTF SDK, Open3D, Intel TBB</div>
<div class="button">
<a href="https://github.com/nathancrews/NCrewsShellExtensions" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Source
Code</span>
</a>
</div>
</div>
</details>
<div id="project-glb-slides" class="slide-button-caption" data-slide-show-id="project-glb-slides"
data-slide-show-slide-images="./images/projects/shell_extensions/GLB_Thumbnail.webp,
./images/projects/shell_extensions/GLTF_Preview_Image.webp,
./images/projects/shell_extensions/GLBWindowsShellExtension.webp,
./images/projects/shell_extensions/GLTF_Preview_Options.webp,
./images/projects/shell_extensions/GLTF_Preview_Image_Directory.webp"
data-slide-show-slide-image-captions="Automatic .GLB Thumbnails,
By File(s): Generate preview image for selected .GLTF file(s),
By File(s): Generate preview image for selected .GLTF file(s),
Options for .GLTF preview image size and format,
By Directory: Generate All preview images for .GLTF files in directory"
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-glb-img" width="250px" src="./images/projects/shell_extensions/GLBWindowsShellExtension.webp"
class="project-image" data-slide-show-id="project-glb-slides"
onclick="SlideShow.StartSlideShowFromElemEvent(event)">
<div class="button">
<a href="https://youtu.be/5MZkpkvcfAQ" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/utube-logo.svg" width="24px" height="18px" /> Video
</span>
</a>
</div>
</box>
<box class="project">
<h3 class="project-title">LandXMLto GLTF Shell Extension</h3>
<article class="description-text">In Windows File Explorer, right click on LandXML .xml files to produce a 3D
GLTF file. Works for LandXML 1.0 to 2.0 .xml files containing surfaces with optional textures.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-landxml-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-landxml-details">
<div class="message-text">Console application that is re-used as a Windows shell extension.
A Windows Registry script adds a File Explorer right-click custom menu entry, "Convert to GLTF", for
.xml files
</div>
<div class="button">
<a style="display:contents" href="https://buymeacoffee.com/nathancrews/e/256643"
target="_blank">Pre-built Windows x64 installer</a>
</div>
<div class="message-text">Languages: C++</div>
<div class="message-text">Build Tools: CMake, VS Studio 2022, gcc, XCode</div>
<div class="message-text">Platforms: Windows, Linux, MacOS</div>
<div class="message-text">Framework: Windows Shell/Registry</div>
<div class="message-text">Libraries: STL, Microsoft GLTF SDK, TinyXML</div>
<div style="display: block;align-self: center;justify-self: center; border:none">
<div class="nested-buttons">
<div class="button nested-button">
<a href="https://github.com/nathancrews/LandXML2glTF" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Source
Code</span>
</a>
</div>
<div class="button nested-button">
<a href="https://sourceforge.net/projects/landxml2gltf/" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/sourceforge-logo.svg" width="18px" height="18px" /> Source
Code</span>
</a>
</div>
</div>
</div>
</div>
</details>
<div id="project-landxml-slides" class="slide-button-caption" data-slide-show-id="project-landxml-slides"
data-slide-show-slide-images="./images/projects/shell_extensions/LandXML2glTFSample1.webp,
./images/projects/shell_extensions/LandXML2glTFMenu.webp"
data-slide-show-slide-image-captions="Generates 3D GLTF File,
By File(s): Generate GLTF for selected LandXML file(s)"
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-landxml-img" width="250px" src="./images/projects/shell_extensions/LandXML2glTFSample1.webp"
class="project-image" data-slide-show-id="project-landxml-slides"
onclick="SlideShow.StartSlideShowFromElemEvent(event)" />
<div class="button">
<a href="https://youtu.be/4IGm0ef89lw" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/utube-logo.svg" width="24px" height="18px" /> Video
</span>
</a>
</div>
</box>
<box class="project">
<h3 class="project-title">Web UI Components</h3>
<article class="description-text">Re-usable, CSS stylable, responsive, pure javascript browser UI components:
pop-up message box, slide show and command/action toolbar.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-wc-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-wc-details">
<div class="message-text">Re-usable, CSS stylable, responsive, pure javascript browser UI components:
pop-up message box, slide show and command/action toolbar.
</div>
<div class="message-text">Languages: JavaScript, HTML, CSS</div>
<div class="message-text">Build Tools: Chrome, Edge, Safari</div>
<div class="message-text">Platforms: all desktop and mobile browsers</div>
<div class="message-text">Framework: DOM JavaScript</div>
<div style="display: block;align-self: center;justify-self: center; border:none">
<div class="nested-buttons">
<div class="button nested-button">
<a href="https://github.com/nathancrews/nathancrews.github.io/blob/main/src/slideshow.js"
rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> SlideShow
Source</span>
</a>
</div>
<div class="button nested-button">
<a href="https://github.com/nathancrews/nathancrews.github.io/blob/main/src/message-ui.js"
rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Message
Source</span>
</a>
</div>
</div>
</div>
</div>
</details>
<div id="project-wc-slides" class="slide-button-caption" data-slide-show-id="project-wc-slides"
data-slide-show-slide-images="./images/projects/webapps/map_controls.webp,
./images/projects/webapps/slideshow_component.webp"
data-slide-show-slide-image-captions="Easy to add toolbar commands and custom messages,
Simple to use and supports many per page (You are using it now...)" ;
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-web-img" width="250px" src="./images/projects/webapps/map_controls.webp" class="project-image"
data-slide-show-id="project-wc-slides" onclick="SlideShow.StartSlideShowFromElemEvent(event)">
</box>
<box class="project">
<h3 class="project-title">Photo Mapper Server</h3>
<article class="description-text">Simple mapping of photos with GPS data. Drag and drop photo image files
onto the 2D or 3D map or choose files to map. Uses backend rendering code. Supports desktop/laptop/mobile
browsers.</article>
<div style="display: flex;flex-direction: column;">
<div id='project-pmsrv-details-btn' class="project-details-button-caption">Project Details</div>
<details class="project-details">
<summary>Project Details</summary>
<div id="project-pmsrv-details">
<div class="message-text">Client/server photo mapping image processing. Re-uses 90% of client-only Photo
Map code. Image processing runs in NodeJS CGI.</div>
<div class="message-text">Languages: JavaScript, HTML, CSS</div>
<div class="message-text">Build Tools: Chrome, Edge, Safari</div>
<div class="message-text">Platforms: all desktop and mobile browsers</div>
<div class="message-text">Framework: DOM JavaScript, NodeJS, CGI</div>
<div class="message-text">Libraries: TinyJSON, EXIFReader</div>
<div style="display: block;align-self: center;justify-self: center; border:none">
<div class="button">
<a href="https://github.com/nathancrews/nathancrews.github.io/blob/main" rel="noopener"
target="_blank">
<span>
<img class="a-logo-img" src="./images/github-logo.svg" width="18px" height="18px" /> Source
Code</span>
</a>
</div>
</div>
</div>
</details>
<div id="project-pmsrv-slides" class="slide-button-caption" data-slide-show-id="project-pmsrv-slides"
data-slide-show-slide-images="./images/projects/webapps/photomapper-Drone.webp,
./images/projects/webapps/photomapper-Drone-settings.webp,
./images/projects/webapps/photomapsrv.webp"
data-slide-show-slide-image-captions="Aerial Drone Photos on 2D Map,
Photo Mapper Settings Options,
Drag & Drop Photos on 2D or 3D Map" ;
onclick="SlideShow.StartSlideShowFromElemEvent(event)">View Slide Show</div>
</div>
<img id="project-pmsrv-img" src=" ./images/projects/webapps/photomapper-Drone-settings.webp"
class="project-image" width="250px" data-slide-show-id="project-pmsrv-slides"
onclick="SlideShow.StartSlideShowFromElemEvent(event)" />
<div class="button">
<a href="https://youtu.be/wfOQpKJ3RZo" rel="noopener" target="_blank">
<span>
<img class="a-logo-img" src="./images/utube-logo.svg" width="24px" height="18px" /> Video
</span>
</a>
</div>
</box>
</div>
</div>
<!-- ---------------------------- -->
<!-- Re-usable slide show template -->
<dialog close id="slide-show-dialog" class="slide-container-popup">
<div id="slide-show-container" class="slide-show-container">
<div id="slide-show-caption-container" class="slide-show-caption-container">
<p id="slide-caption-text" class="slide-caption-text"></p>
</div>
<a id="slide-show-prev-btn" class="slide-prev">❮❮</a>
<a id="slide-show-next-btn" class="slide-next">❯❯</a>
</div>
<span id="slide-show-close" class="slide-show-close">×</span>
</dialog>
<!-- ---------------------------- -->
<!-- Message dialog -->
<dialog class="message-modal message-modal-hide">
<form class="message-dialog">
<div class="message-text"></div>
<div class="message-div"></div>
</form>
<div class="message-button-bar">
<button id="ok" class="message-button-ok" type="button">Ok</button>
<button id="cancel" class="message-button-cancel" type="button">Cancel</button>
</div>
</dialog>
<!-- ---------------------------- -->
<!-- Cloudflare Web Analytics -->
<script defer src='https://static.cloudflareinsights.com/beacon.min.js'
data-cf-beacon='{"token": "e2b26c1669c44cc08b9db6bcd2ae3c83"}'>
</script><!-- End Cloudflare Web Analytics -->
</body>
</html>