A LiDAR mounted above the loading track identifies, counts and locates every freight wagon as it stops — six lid centerpoints, wagon number, Roboterwagen flag, all from a single scan in under two seconds. Drives the automated loading sequence, writes a per-wagon material log into ERP/MES. This is our shipped Bahnwagon pipeline, in production today.
Ein LiDAR über dem Verladegleis erkennt, zählt und ortet jeden Güterwagen, sobald er hält — sechs Deckel-Mittelpunkte, Waggonnummer, Roboterwagen-Flag, alles aus einem einzigen Scan in unter zwei Sekunden. Treibt die automatische Beladung, schreibt ein Material-Log pro Waggon ins ERP/MES. Unsere produktive Bahnwagon-Pipeline, heute im Einsatz.
A LiDAR mounted above the loading track identifies, counts and locates every freight wagon as it stops — six lid centerpoints, wagon number, Roboterwagen flag, all from a single scan in under two seconds. Drives the automated loading sequence, writes a per-wagon material log into ERP/MES. This is our shipped Bahnwagon pipeline, in production today.
A LiDAR mounted above the loading track identifies, counts and locates every freight wagon as it stops — six lid centerpoints, wagon number, Roboterwagen flag, all from a single scan in under two seconds. Drives the automated loading sequence, writes a per-wagon material log into ERP/MES. This is our shipped Bahnwagon pipeline, in production today.
A LiDAR mounted above the loading track identifies, counts and locates every freight wagon as it stops — six lid centerpoints, wagon number, Roboterwagen flag, all from a single scan in under two seconds. Drives the automated loading sequence, writes a per-wagon material log into ERP/MES. This is our shipped Bahnwagon pipeline, in production today.
A LiDAR mounted above the loading track identifies, counts and locates every freight wagon as it stops — six lid centerpoints, wagon number, Roboterwagen flag, all from a single scan in under two seconds. Drives the automated loading sequence, writes a per-wagon material log into ERP/MES. This is our shipped Bahnwagon pipeline, in production today.
Um LiDAR montado sobre o trilho de carregamento identifica, conta e localiza cada vagão de carga assim que ele para — seis centros de tampa, número do vagão, indicador de vagão-robô (Roboterwagen) de controle, tudo em uma única varredura em menos de dois segundos. Aciona a sequência automática de carregamento e grava um registro de material por vagão no ERP/MES. Este é nosso pipeline Bahnwagon entregue, em produção hoje.
Railcar detection AI is a perception pipeline that ingests a single 3D-LiDAR scan of a freight wagon at the loading station and returns the wagon position, its identifying features (lid count, lid centerpoints, the leading roboterwagen if present) and a wagon-number assignment — drives automated loading workflows and per-wagon material logs into ERP.Waggon-Erkennung KI ist eine Wahrnehmungs-Pipeline, die einen einzelnen 3D-LiDAR-Scan eines Güterwagens an der Verladestation verarbeitet und die Waggonposition, die identifizierenden Merkmale (Deckelzahl, Deckel-Mittelpunkte, vorausfahrender Roboterwagen falls vorhanden) sowie die Waggonnummer-Zuordnung zurückgibt — treibt die automatische Verladeautomatisierung und schreibt das Material-Log pro Waggon ins ERP.Railcar detection AI is a perception pipeline that ingests a single 3D-LiDAR scan of a freight wagon at the loading station and returns the wagon position, its identifying features (lid count, lid centerpoints, the leading roboterwagen if present) and a wagon-number assignment — drives automated loading workflows and per-wagon material logs into ERP.Railcar detection AI is a perception pipeline that ingests a single 3D-LiDAR scan of a freight wagon at the loading station and returns the wagon position, its identifying features (lid count, lid centerpoints, the leading roboterwagen if present) and a wagon-number assignment — drives automated loading workflows and per-wagon material logs into ERP.Railcar detection AI is a perception pipeline that ingests a single 3D-LiDAR scan of a freight wagon at the loading station and returns the wagon position, its identifying features (lid count, lid centerpoints, the leading roboterwagen if present) and a wagon-number assignment — drives automated loading workflows and per-wagon material logs into ERP.Railcar detection AI is a perception pipeline that ingests a single 3D-LiDAR scan of a freight wagon at the loading station and returns the wagon position, its identifying features (lid count, lid centerpoints, the leading roboterwagen if present) and a wagon-number assignment — drives automated loading workflows and per-wagon material logs into ERP.A IA de detecção de vagões ferroviários é um pipeline de percepção que ingere uma única varredura 3D-LiDAR de um vagão de carga na estação de carregamento e retorna a posição do vagão, suas características de identificação (contagem de tampas, centros das tampas, o vagão-robô de controle líder, se presente) e uma atribuição de número de vagão — aciona os fluxos automáticos de carregamento e o registro de material por vagão no ERP.
The pain shows up at every industrial plant that loads bulk material onto rail — salt mines, scrap recycling, bulk yards, fertiliser depots. Wagons roll under the loading equipment one by one, and the loading control system needs to know precisely where each wagon is, how many compartments it has, and when it is full. Today operators do this visually: peering over the rail, eyeballing lid positions, ticking wagons off on a clipboard. It is slow, error-prone and unforgiving — the wrong lid gets loaded, the wrong wagon gets billed, the ERP entry does not match the actual yard state, and the shift loses an hour reconciling paper against reality.Den Schmerz kennt jeder Industriebetrieb, der Schüttgut auf die Schiene verlädt — Salzbergwerke, Schrott-Recycling, Schüttgut-Höfe, Düngemittel-Depots. Güterwagen rollen einzeln unter die Verladeeinrichtung, und die Verladesteuerung muss exakt wissen, wo jeder Waggon steht, wie viele Kammern er hat und wann er voll ist. Heute machen Bediener das per Augenmaß: über die Schiene gebeugt, Deckelpositionen geschätzt, Waggons auf dem Klemmbrett abgehakt. Es ist langsam, fehleranfällig und gnadenlos — der falsche Deckel wird beladen, der falsche Waggon abgerechnet, das ERP passt nicht zum tatsächlichen Hof-Zustand, und die Schicht verliert eine Stunde damit, Papier gegen Realität abzugleichen.The pain shows up at every industrial plant that loads bulk material onto rail — salt mines, scrap recycling, bulk yards, fertiliser depots. Wagons roll under the loading equipment one by one, and the loading control system needs to know precisely where each wagon is, how many compartments it has, and when it is full. Today operators do this visually: peering over the rail, eyeballing lid positions, ticking wagons off on a clipboard. It is slow, error-prone and unforgiving — the wrong lid gets loaded, the wrong wagon gets billed, the ERP entry does not match the actual yard state, and the shift loses an hour reconciling paper against reality.The pain shows up at every industrial plant that loads bulk material onto rail — salt mines, scrap recycling, bulk yards, fertiliser depots. Wagons roll under the loading equipment one by one, and the loading control system needs to know precisely where each wagon is, how many compartments it has, and when it is full. Today operators do this visually: peering over the rail, eyeballing lid positions, ticking wagons off on a clipboard. It is slow, error-prone and unforgiving — the wrong lid gets loaded, the wrong wagon gets billed, the ERP entry does not match the actual yard state, and the shift loses an hour reconciling paper against reality.The pain shows up at every industrial plant that loads bulk material onto rail — salt mines, scrap recycling, bulk yards, fertiliser depots. Wagons roll under the loading equipment one by one, and the loading control system needs to know precisely where each wagon is, how many compartments it has, and when it is full. Today operators do this visually: peering over the rail, eyeballing lid positions, ticking wagons off on a clipboard. It is slow, error-prone and unforgiving — the wrong lid gets loaded, the wrong wagon gets billed, the ERP entry does not match the actual yard state, and the shift loses an hour reconciling paper against reality.The pain shows up at every industrial plant that loads bulk material onto rail — salt mines, scrap recycling, bulk yards, fertiliser depots. Wagons roll under the loading equipment one by one, and the loading control system needs to know precisely where each wagon is, how many compartments it has, and when it is full. Today operators do this visually: peering over the rail, eyeballing lid positions, ticking wagons off on a clipboard. It is slow, error-prone and unforgiving — the wrong lid gets loaded, the wrong wagon gets billed, the ERP entry does not match the actual yard state, and the shift loses an hour reconciling paper against reality.A dor aparece em todas as plantas industriais que carregam material a granel em ferrovia — minas de sal, reciclagem de sucata, pátios de granéis, depósitos de fertilizantes. Os vagões passam sob o equipamento de carregamento um a um, e o sistema de controle de carga precisa saber exatamente onde cada vagão está, quantos compartimentos ele tem e quando está cheio. Hoje os operadores fazem isso visualmente: olhando por cima do trilho, medindo as tampas a olho, marcando vagões numa prancheta. É lento, propenso a erros e implacável — a tampa errada é carregada, o vagão errado é faturado, o lançamento no ERP não bate com o estado real do pátio, e o turno perde uma hora reconciliando papel com a realidade.
Our approach is one LiDAR mounted above the loading track. As each wagon stops, the sensor captures a single scan; a six-stage stateless geometric pipeline — ground crop → deck-Z estimation → height-band masking → lid clustering → wagon-bounds → tracker state machine — returns the wagon's exact 3D position, all lid centerpoints, the leading Roboterwagen if it is in frame, and a sequence number. The geometry stages are pure NumPy and scipy in the prototype and port cleanly to C++/C# for the final plant controller. Mean centroid error stays under 5 cm against hand-labelled ground truth; the whole scan is processed in under two seconds on commodity hardware.Unser Ansatz ist ein LiDAR, montiert über dem Verladegleis. Sobald ein Waggon hält, nimmt der Sensor einen einzigen Scan auf; eine sechsstufige zustandslose geometrische Pipeline — Ground-Crop → Deck-Z-Schätzung → Höhenband-Maskierung → Deckel-Clustering → Waggon-Bounds → Tracker-Zustandsautomat — liefert die exakte 3D-Position des Waggons, alle Deckel-Mittelpunkte, den vorausfahrenden Roboterwagen falls im Bild und eine Sequenznummer. Die Geometriestufen sind im Prototyp reines NumPy und scipy und portieren sauber nach C++/C# für den finalen Anlagencontroller. Der mittlere Mittelpunkts-Fehler bleibt unter 5 cm gegenüber handgelabelter Ground Truth; der gesamte Scan wird in unter zwei Sekunden auf Standard-Hardware verarbeitet.Our approach is one LiDAR mounted above the loading track. As each wagon stops, the sensor captures a single scan; a six-stage stateless geometric pipeline — ground crop → deck-Z estimation → height-band masking → lid clustering → wagon-bounds → tracker state machine — returns the wagon's exact 3D position, all lid centerpoints, the leading Roboterwagen if it is in frame, and a sequence number. The geometry stages are pure NumPy and scipy in the prototype and port cleanly to C++/C# for the final plant controller. Mean centroid error stays under 5 cm against hand-labelled ground truth; the whole scan is processed in under two seconds on commodity hardware.Our approach is one LiDAR mounted above the loading track. As each wagon stops, the sensor captures a single scan; a six-stage stateless geometric pipeline — ground crop → deck-Z estimation → height-band masking → lid clustering → wagon-bounds → tracker state machine — returns the wagon's exact 3D position, all lid centerpoints, the leading Roboterwagen if it is in frame, and a sequence number. The geometry stages are pure NumPy and scipy in the prototype and port cleanly to C++/C# for the final plant controller. Mean centroid error stays under 5 cm against hand-labelled ground truth; the whole scan is processed in under two seconds on commodity hardware.Our approach is one LiDAR mounted above the loading track. As each wagon stops, the sensor captures a single scan; a six-stage stateless geometric pipeline — ground crop → deck-Z estimation → height-band masking → lid clustering → wagon-bounds → tracker state machine — returns the wagon's exact 3D position, all lid centerpoints, the leading Roboterwagen if it is in frame, and a sequence number. The geometry stages are pure NumPy and scipy in the prototype and port cleanly to C++/C# for the final plant controller. Mean centroid error stays under 5 cm against hand-labelled ground truth; the whole scan is processed in under two seconds on commodity hardware.Our approach is one LiDAR mounted above the loading track. As each wagon stops, the sensor captures a single scan; a six-stage stateless geometric pipeline — ground crop → deck-Z estimation → height-band masking → lid clustering → wagon-bounds → tracker state machine — returns the wagon's exact 3D position, all lid centerpoints, the leading Roboterwagen if it is in frame, and a sequence number. The geometry stages are pure NumPy and scipy in the prototype and port cleanly to C++/C# for the final plant controller. Mean centroid error stays under 5 cm against hand-labelled ground truth; the whole scan is processed in under two seconds on commodity hardware.Nossa abordagem usa um LiDAR montado sobre o trilho de carregamento. Assim que cada vagão para, o sensor captura uma única varredura; um pipeline geométrico sem estado, de seis estágios — corte do solo → estimativa de Z do deck → mascaramento por faixa de altura → clusterização das tampas → contornos do vagão → máquina de estados do rastreador — retorna a posição 3D exata do vagão, todos os centros de tampa, o vagão-robô de controle líder se estiver no quadro e um número de sequência. Os estágios geométricos são NumPy e scipy puros no protótipo e portam-se de forma limpa para C++/C# no controlador final da planta. O erro médio de centroide fica abaixo de 5 cm em relação ao ground truth rotulado à mão; a varredura inteira é processada em menos de dois segundos em hardware comum.
This engagement descends from Industrial Perception AI and is the one use case where we already shipped — the Bahnwagon-Deckelerkennung pipeline runs in production at a north-German recycling and mining operation. The same geometric approach works whether the wagon carries rock, salt, scrap or grain; only the calibration constants in config.yaml change, no model retraining required.Das Projekt geht aus unserem Hub-Service Industrielle Objekterkennung hervor und ist der eine Anwendungsfall, in dem wir bereits ausgeliefert haben — die Bahnwagon-Deckelerkennung läuft produktiv bei einem norddeutschen Recycling- und Bergbaubetrieb. Derselbe geometrische Ansatz funktioniert unabhängig davon, ob der Waggon Stein, Salz, Schrott oder Getreide trägt; nur die Kalibrierungskonstanten in config.yaml ändern sich, ein Modell-Retraining ist nicht nötig.This engagement descends from Industrial Perception AI and is the one use case where we already shipped — the Bahnwagon-Deckelerkennung pipeline runs in production at a north-German recycling and mining operation. The same geometric approach works whether the wagon carries rock, salt, scrap or grain; only the calibration constants in config.yaml change, no model retraining required.This engagement descends from Industrial Perception AI and is the one use case where we already shipped — the Bahnwagon-Deckelerkennung pipeline runs in production at a north-German recycling and mining operation. The same geometric approach works whether the wagon carries rock, salt, scrap or grain; only the calibration constants in config.yaml change, no model retraining required.This engagement descends from Industrial Perception AI and is the one use case where we already shipped — the Bahnwagon-Deckelerkennung pipeline runs in production at a north-German recycling and mining operation. The same geometric approach works whether the wagon carries rock, salt, scrap or grain; only the calibration constants in config.yaml change, no model retraining required.This engagement descends from Industrial Perception AI and is the one use case where we already shipped — the Bahnwagon-Deckelerkennung pipeline runs in production at a north-German recycling and mining operation. The same geometric approach works whether the wagon carries rock, salt, scrap or grain; only the calibration constants in config.yaml change, no model retraining required.Este trabalho descende do serviço Industrial Perception AI e é o único caso de uso em que já entregamos — o pipeline Bahnwagon-Deckelerkennung está em produção em uma operação de reciclagem e mineração no norte da Alemanha. A mesma abordagem geométrica funciona quer o vagão carregue rocha, sal, sucata ou grãos; só mudam as constantes de calibração no config.yaml, sem retreinamento de modelo.
The Bahnwagon-Deckelerkennung pipeline is in production today — six lid centroids, sub-5 cm error, two-second response, Electron + Vue 3 + Three.js operator UI. Die Bahnwagon-Deckelerkennung läuft heute produktiv — sechs Deckel-Mittelpunkte, Fehler unter 5 cm, Antwort in zwei Sekunden, Bediener-UI in Electron + Vue 3 + Three.js. The Bahnwagon-Deckelerkennung pipeline is in production today — six lid centroids, sub-5 cm error, two-second response, Electron + Vue 3 + Three.js operator UI. The Bahnwagon-Deckelerkennung pipeline is in production today — six lid centroids, sub-5 cm error, two-second response, Electron + Vue 3 + Three.js operator UI. The Bahnwagon-Deckelerkennung pipeline is in production today — six lid centroids, sub-5 cm error, two-second response, Electron + Vue 3 + Three.js operator UI. The Bahnwagon-Deckelerkennung pipeline is in production today — six lid centroids, sub-5 cm error, two-second response, Electron + Vue 3 + Three.js operator UI. O pipeline Bahnwagon-Deckelerkennung está em produção hoje — seis centroides de tampa, erro abaixo de 5 cm, resposta em dois segundos, interface de operador em Electron + Vue 3 + Three.js.
One LiDAR mounted above the loading track, IP65+ housing, scans every wagon as it stops at the loading position. No camera required, no second sensor to calibrate. Runs through dust, snow, night light and the steam that comes off warm bulk material. One scan per wagon stop, written to local storage with a per-wagon UUID for audit trail. Ein LiDAR, montiert über dem Verladegleis, IP65+-Gehäuse, scannt jeden Güterwagen, sobald er an der Verladeposition hält. Keine Kamera nötig, kein zweiter Sensor zu kalibrieren. Läuft durch Staub, Schnee, Nachtlicht und den Dampf, der von warmem Schüttgut aufsteigt. Ein Scan pro Waggon-Stopp, gespeichert auf lokalem Speicher mit pro-Waggon-UUID für den Audit-Trail. One LiDAR mounted above the loading track, IP65+ housing, scans every wagon as it stops at the loading position. No camera required, no second sensor to calibrate. Runs through dust, snow, night light and the steam that comes off warm bulk material. One scan per wagon stop, written to local storage with a per-wagon UUID for audit trail. One LiDAR mounted above the loading track, IP65+ housing, scans every wagon as it stops at the loading position. No camera required, no second sensor to calibrate. Runs through dust, snow, night light and the steam that comes off warm bulk material. One scan per wagon stop, written to local storage with a per-wagon UUID for audit trail. One LiDAR mounted above the loading track, IP65+ housing, scans every wagon as it stops at the loading position. No camera required, no second sensor to calibrate. Runs through dust, snow, night light and the steam that comes off warm bulk material. One scan per wagon stop, written to local storage with a per-wagon UUID for audit trail. One LiDAR mounted above the loading track, IP65+ housing, scans every wagon as it stops at the loading position. No camera required, no second sensor to calibrate. Runs through dust, snow, night light and the steam that comes off warm bulk material. One scan per wagon stop, written to local storage with a per-wagon UUID for audit trail. Um LiDAR montado sobre o trilho de carregamento, com carcaça IP65+, faz a varredura de cada vagão quando ele para na posição de carga. Sem câmera, sem segundo sensor para calibrar. Funciona através de poeira, neve, iluminação noturna e o vapor que sai do material a granel quente. Uma varredura por parada de vagão, gravada em armazenamento local com UUID por vagão para trilha de auditoria.
Pure NumPy and scipy in the Python prototype, ports straight to C++/C# for the plant controller. Six stateless stages: ground crop, deck-Z estimation, height-band masking, lid clustering, wagon-bounds, tracker state machine. Runs in under two seconds on commodity hardware. No GPU required, no model retraining when the wagon class changes — calibration lives in config.yaml. Reines NumPy und scipy im Python-Prototyp, portiert direkt nach C++/C# für den Anlagencontroller. Sechs zustandslose Stufen: Ground-Crop, Deck-Z-Schätzung, Höhenband-Maskierung, Deckel-Clustering, Waggon-Bounds, Tracker-Zustandsautomat. Läuft in unter zwei Sekunden auf Standard-Hardware. Keine GPU nötig, kein Modell-Retraining bei Waggon-Klassen-Wechsel — Kalibrierung liegt in config.yaml. Pure NumPy and scipy in the Python prototype, ports straight to C++/C# for the plant controller. Six stateless stages: ground crop, deck-Z estimation, height-band masking, lid clustering, wagon-bounds, tracker state machine. Runs in under two seconds on commodity hardware. No GPU required, no model retraining when the wagon class changes — calibration lives in config.yaml. Pure NumPy and scipy in the Python prototype, ports straight to C++/C# for the plant controller. Six stateless stages: ground crop, deck-Z estimation, height-band masking, lid clustering, wagon-bounds, tracker state machine. Runs in under two seconds on commodity hardware. No GPU required, no model retraining when the wagon class changes — calibration lives in config.yaml. Pure NumPy and scipy in the Python prototype, ports straight to C++/C# for the plant controller. Six stateless stages: ground crop, deck-Z estimation, height-band masking, lid clustering, wagon-bounds, tracker state machine. Runs in under two seconds on commodity hardware. No GPU required, no model retraining when the wagon class changes — calibration lives in config.yaml. Pure NumPy and scipy in the Python prototype, ports straight to C++/C# for the plant controller. Six stateless stages: ground crop, deck-Z estimation, height-band masking, lid clustering, wagon-bounds, tracker state machine. Runs in under two seconds on commodity hardware. No GPU required, no model retraining when the wagon class changes — calibration lives in config.yaml. NumPy e scipy puros no protótipo Python, portáveis diretamente para C++/C# no controlador da planta. Seis estágios sem estado: corte do solo, estimativa de Z do deck, mascaramento por faixa de altura, clusterização das tampas, contornos do vagão, máquina de estados do rastreador. Executa em menos de dois segundos em hardware comum. Sem GPU, sem retreinamento de modelo quando muda a classe do vagão — a calibração vive no config.yaml.
Wagon ID, lid coordinates and material assignment write back over OPC UA or REST — same wagon stop, before the next train pulls in. The loading control system reads real wagon positions instead of operator clipboard estimates. Misroutes get flagged before the lid opens; the ERP material log matches the yard state by the end of the shift. Waggon-ID, Deckel-Koordinaten und Material-Zuordnung schreiben zurück per OPC UA oder REST — gleicher Waggon-Stopp, bevor der nächste Zug einfährt. Die Verladesteuerung liest echte Waggonpositionen statt Bediener-Schätzungen vom Klemmbrett. Fehl-Routings werden markiert, bevor der Deckel öffnet; das ERP-Material-Log passt zum Hof-Zustand am Schichtende. Wagon ID, lid coordinates and material assignment write back over OPC UA or REST — same wagon stop, before the next train pulls in. The loading control system reads real wagon positions instead of operator clipboard estimates. Misroutes get flagged before the lid opens; the ERP material log matches the yard state by the end of the shift. Wagon ID, lid coordinates and material assignment write back over OPC UA or REST — same wagon stop, before the next train pulls in. The loading control system reads real wagon positions instead of operator clipboard estimates. Misroutes get flagged before the lid opens; the ERP material log matches the yard state by the end of the shift. Wagon ID, lid coordinates and material assignment write back over OPC UA or REST — same wagon stop, before the next train pulls in. The loading control system reads real wagon positions instead of operator clipboard estimates. Misroutes get flagged before the lid opens; the ERP material log matches the yard state by the end of the shift. Wagon ID, lid coordinates and material assignment write back over OPC UA or REST — same wagon stop, before the next train pulls in. The loading control system reads real wagon positions instead of operator clipboard estimates. Misroutes get flagged before the lid opens; the ERP material log matches the yard state by the end of the shift. ID do vagão, coordenadas das tampas e atribuição de material são gravados via OPC UA ou REST — na mesma parada do vagão, antes do próximo trem entrar. O sistema de controle de carga lê posições reais em vez das estimativas do operador na prancheta. Erros de roteamento são sinalizados antes da tampa abrir; o registro de material no ERP bate com o estado do pátio no final do turno.
The architecture is boring on purpose. Three loosely coupled stages, each one independently testable, each one swappable when the rail operator changes wagon class or relocates the loading position. Built on the same stack we use across all our perception work: NumPy, scipy, PCL, Open3D. Die Architektur ist absichtlich langweilig. Drei lose gekoppelte Stufen, jede einzeln testbar, jede einzeln tauschbar, wenn der Bahnbetreiber die Waggon-Klasse ändert oder die Verladeposition verschiebt. Gebaut auf demselben Stack, den wir für unsere gesamte Wahrnehmungs-Arbeit nutzen: NumPy, scipy, PCL, Open3D. The architecture is boring on purpose. Three loosely coupled stages, each one independently testable, each one swappable when the rail operator changes wagon class or relocates the loading position. Built on the same stack we use across all our perception work: NumPy, scipy, PCL, Open3D. The architecture is boring on purpose. Three loosely coupled stages, each one independently testable, each one swappable when the rail operator changes wagon class or relocates the loading position. Built on the same stack we use across all our perception work: NumPy, scipy, PCL, Open3D. The architecture is boring on purpose. Three loosely coupled stages, each one independently testable, each one swappable when the rail operator changes wagon class or relocates the loading position. Built on the same stack we use across all our perception work: NumPy, scipy, PCL, Open3D. The architecture is boring on purpose. Three loosely coupled stages, each one independently testable, each one swappable when the rail operator changes wagon class or relocates the loading position. Built on the same stack we use across all our perception work: NumPy, scipy, PCL, Open3D. A arquitetura é chata de propósito. Três estágios fracamente acoplados, cada um testável de forma independente, cada um substituível quando o operador ferroviário troca a classe de vagão ou realoca a posição de carregamento. Construído na mesma pilha que usamos em todos os nossos trabalhos de percepção: NumPy, scipy, PCL, Open3D.
A single LAS file per wagon stop — typically a million-plus points covering the wagon deck, the lids and a strip of track on either side. The LiDAR captures the scan as the wagon comes to rest at the loading position. Raw point cloud writes to local storage with a per-wagon UUID for audit trail and re-labelling. Eine einzige LAS-Datei pro Waggon-Stopp — typisch über eine Million Punkte über das Waggon-Deck, die Deckel und einen Streifen Gleis links und rechts. Der LiDAR nimmt den Scan auf, sobald der Waggon an der Verladeposition zum Stehen kommt. Die Rohpunktwolke schreibt auf lokalen Speicher mit pro-Waggon-UUID für Audit-Trail und Re-Labelling. A single LAS file per wagon stop — typically a million-plus points covering the wagon deck, the lids and a strip of track on either side. The LiDAR captures the scan as the wagon comes to rest at the loading position. Raw point cloud writes to local storage with a per-wagon UUID for audit trail and re-labelling. A single LAS file per wagon stop — typically a million-plus points covering the wagon deck, the lids and a strip of track on either side. The LiDAR captures the scan as the wagon comes to rest at the loading position. Raw point cloud writes to local storage with a per-wagon UUID for audit trail and re-labelling. A single LAS file per wagon stop — typically a million-plus points covering the wagon deck, the lids and a strip of track on either side. The LiDAR captures the scan as the wagon comes to rest at the loading position. Raw point cloud writes to local storage with a per-wagon UUID for audit trail and re-labelling. A single LAS file per wagon stop — typically a million-plus points covering the wagon deck, the lids and a strip of track on either side. The LiDAR captures the scan as the wagon comes to rest at the loading position. Raw point cloud writes to local storage with a per-wagon UUID for audit trail and re-labelling. Um único arquivo LAS por parada de vagão — tipicamente mais de um milhão de pontos cobrindo o deck do vagão, as tampas e uma faixa de trilho de cada lado. O LiDAR captura a varredura assim que o vagão para na posição de carregamento. A nuvem de pontos bruta é gravada em armazenamento local com UUID por vagão para trilha de auditoria e rerrotulagem.
Ground crop removes the track and ballast. Deck-Z estimation locates the wagon-deck plane. Height-band masking isolates the lid layer. Lid clustering returns the six centerpoints. Wagon-bounds gives the 3D box. The tracker state machine assigns a sequence number and flags the leading Roboterwagen if it is in frame. Mean centroid error stays under 5 cm against hand-labelled ground truth. Ground-Crop entfernt Gleis und Schotter. Deck-Z-Schätzung lokalisiert die Waggon-Deck-Ebene. Höhenband-Maskierung isoliert die Deckel-Schicht. Deckel-Clustering liefert die sechs Mittelpunkte. Waggon-Bounds gibt die 3D-Box. Der Tracker-Zustandsautomat vergibt die Sequenznummer und markiert den vorausfahrenden Roboterwagen, falls im Bild. Der mittlere Mittelpunkts-Fehler bleibt unter 5 cm gegen handgelabelte Ground Truth. Ground crop removes the track and ballast. Deck-Z estimation locates the wagon-deck plane. Height-band masking isolates the lid layer. Lid clustering returns the six centerpoints. Wagon-bounds gives the 3D box. The tracker state machine assigns a sequence number and flags the leading Roboterwagen if it is in frame. Mean centroid error stays under 5 cm against hand-labelled ground truth. Ground crop removes the track and ballast. Deck-Z estimation locates the wagon-deck plane. Height-band masking isolates the lid layer. Lid clustering returns the six centerpoints. Wagon-bounds gives the 3D box. The tracker state machine assigns a sequence number and flags the leading Roboterwagen if it is in frame. Mean centroid error stays under 5 cm against hand-labelled ground truth. Ground crop removes the track and ballast. Deck-Z estimation locates the wagon-deck plane. Height-band masking isolates the lid layer. Lid clustering returns the six centerpoints. Wagon-bounds gives the 3D box. The tracker state machine assigns a sequence number and flags the leading Roboterwagen if it is in frame. Mean centroid error stays under 5 cm against hand-labelled ground truth. Ground crop removes the track and ballast. Deck-Z estimation locates the wagon-deck plane. Height-band masking isolates the lid layer. Lid clustering returns the six centerpoints. Wagon-bounds gives the 3D box. The tracker state machine assigns a sequence number and flags the leading Roboterwagen if it is in frame. Mean centroid error stays under 5 cm against hand-labelled ground truth. O corte do solo remove o trilho e o lastro. A estimativa de Z do deck localiza o plano do deck do vagão. O mascaramento por faixa de altura isola a camada das tampas. A clusterização das tampas retorna os seis centros. Os contornos do vagão dão a caixa 3D. A máquina de estados do rastreador atribui um número de sequência e sinaliza o vagão-robô de controle líder, se estiver no quadro. O erro médio de centroide fica abaixo de 5 cm em relação ao ground truth rotulado à mão.
Output per wagon: JSON record with wagon ID, lid centerpoints, material assignment and audit images. Writes into the ERP, the MES or the loading-control system over OPC UA or REST. The Electron + Vue 3 + Three.js operator UI shows the live 3D point cloud, the train summary and a CSV export for the shift log. Ausgabe pro Waggon: JSON-Datensatz mit Waggon-ID, Deckel-Mittelpunkten, Material-Zuordnung und Audit-Bildern. Schreibt ins ERP, MES oder Verladesteuerungs-System per OPC UA oder REST. Die Bediener-Oberfläche in Electron + Vue 3 + Three.js zeigt die Live-3D-Punktwolke, die Zug-Übersicht und einen CSV-Export für das Schicht-Log. Output per wagon: JSON record with wagon ID, lid centerpoints, material assignment and audit images. Writes into the ERP, the MES or the loading-control system over OPC UA or REST. The Electron + Vue 3 + Three.js operator UI shows the live 3D point cloud, the train summary and a CSV export for the shift log. Output per wagon: JSON record with wagon ID, lid centerpoints, material assignment and audit images. Writes into the ERP, the MES or the loading-control system over OPC UA or REST. The Electron + Vue 3 + Three.js operator UI shows the live 3D point cloud, the train summary and a CSV export for the shift log. Output per wagon: JSON record with wagon ID, lid centerpoints, material assignment and audit images. Writes into the ERP, the MES or the loading-control system over OPC UA or REST. The Electron + Vue 3 + Three.js operator UI shows the live 3D point cloud, the train summary and a CSV export for the shift log. Output per wagon: JSON record with wagon ID, lid centerpoints, material assignment and audit images. Writes into the ERP, the MES or the loading-control system over OPC UA or REST. The Electron + Vue 3 + Three.js operator UI shows the live 3D point cloud, the train summary and a CSV export for the shift log. Saída por vagão: registro JSON com ID do vagão, centros das tampas, atribuição de material e imagens de auditoria. Grava no ERP, no MES ou no sistema de controle de carga via OPC UA ou REST. A interface de operador em Electron + Vue 3 + Three.js mostra a nuvem de pontos 3D ao vivo, o resumo do trem e uma exportação CSV para o log do turno.
All three stages run on an industrial PC at the loading station — Python prototype for development, C++/C# port for the final controller. No cloud dependency, no external API, no licence dial-home. The code is yours at handover. Alle drei Stufen laufen auf einem Industrie-PC an der Verladestation — Python-Prototyp für die Entwicklung, C++/C#-Portierung für den finalen Controller. Keine Cloud-Abhängigkeit, keine externe API, kein Lizenz-Heimruf. Der Code gehört Ihnen bei der Übergabe. All three stages run on an industrial PC at the loading station — Python prototype for development, C++/C# port for the final controller. No cloud dependency, no external API, no licence dial-home. The code is yours at handover. All three stages run on an industrial PC at the loading station — Python prototype for development, C++/C# port for the final controller. No cloud dependency, no external API, no licence dial-home. The code is yours at handover. All three stages run on an industrial PC at the loading station — Python prototype for development, C++/C# port for the final controller. No cloud dependency, no external API, no licence dial-home. The code is yours at handover. All three stages run on an industrial PC at the loading station — Python prototype for development, C++/C# port for the final controller. No cloud dependency, no external API, no licence dial-home. The code is yours at handover. Todos os três estágios rodam em um PC industrial na estação de carregamento — protótipo Python para desenvolvimento, porte C++/C# para o controlador final. Sem dependência de nuvem, sem API externa, sem licença que "telefona para casa". O código é seu na entrega.
Every wagon stop returns an exact 3D bounding box, the six lid centerpoints, a wagon sequence number and a Roboterwagen flag. Drops directly into the loading-control state machine so the next loading move is unambiguous. Same geometric output the Bahnwagon pipeline produces in production today. Jeder Waggon-Stopp liefert eine exakte 3D-Bounding-Box, die sechs Deckel-Mittelpunkte, eine Waggon-Sequenznummer und ein Roboterwagen-Flag. Geht direkt in den Zustandsautomaten der Verladesteuerung, so dass die nächste Verladebewegung eindeutig ist. Dieselbe geometrische Ausgabe, die die Bahnwagon-Pipeline heute produktiv erzeugt. Every wagon stop returns an exact 3D bounding box, the six lid centerpoints, a wagon sequence number and a Roboterwagen flag. Drops directly into the loading-control state machine so the next loading move is unambiguous. Same geometric output the Bahnwagon pipeline produces in production today. Every wagon stop returns an exact 3D bounding box, the six lid centerpoints, a wagon sequence number and a Roboterwagen flag. Drops directly into the loading-control state machine so the next loading move is unambiguous. Same geometric output the Bahnwagon pipeline produces in production today. Every wagon stop returns an exact 3D bounding box, the six lid centerpoints, a wagon sequence number and a Roboterwagen flag. Drops directly into the loading-control state machine so the next loading move is unambiguous. Same geometric output the Bahnwagon pipeline produces in production today. Every wagon stop returns an exact 3D bounding box, the six lid centerpoints, a wagon sequence number and a Roboterwagen flag. Drops directly into the loading-control state machine so the next loading move is unambiguous. Same geometric output the Bahnwagon pipeline produces in production today. Cada parada de vagão retorna uma caixa delimitadora 3D exata, os seis centros das tampas, um número de sequência do vagão e um indicador de vagão-robô de controle. Entra diretamente na máquina de estados do controle de carga, de modo que o próximo movimento é inequívoco. Mesma saída geométrica que o pipeline Bahnwagon produz em produção hoje.
Material type, tonnage and per-lid breakdown write into ERP/MES per wagon — same shift, before the train leaves. No more clipboard reconciliation, no more billing the wrong wagon. The yard-management system sees the actual loaded mass instead of the operator estimate. Material-Typ, Tonnage und Deckel-Aufschlüsselung schreiben pro Waggon ins ERP/MES — gleiche Schicht, bevor der Zug abfährt. Kein Klemmbrett-Abgleich mehr, keine Falsch-Abrechnung mehr. Das Hof-Management-System sieht die tatsächlich beladene Masse statt der Bediener-Schätzung. Material type, tonnage and per-lid breakdown write into ERP/MES per wagon — same shift, before the train leaves. No more clipboard reconciliation, no more billing the wrong wagon. The yard-management system sees the actual loaded mass instead of the operator estimate. Material type, tonnage and per-lid breakdown write into ERP/MES per wagon — same shift, before the train leaves. No more clipboard reconciliation, no more billing the wrong wagon. The yard-management system sees the actual loaded mass instead of the operator estimate. Material type, tonnage and per-lid breakdown write into ERP/MES per wagon — same shift, before the train leaves. No more clipboard reconciliation, no more billing the wrong wagon. The yard-management system sees the actual loaded mass instead of the operator estimate. Material type, tonnage and per-lid breakdown write into ERP/MES per wagon — same shift, before the train leaves. No more clipboard reconciliation, no more billing the wrong wagon. The yard-management system sees the actual loaded mass instead of the operator estimate. Tipo de material, tonelagem e detalhamento por tampa são gravados no ERP/MES por vagão — mesmo turno, antes de o trem partir. Chega de reconciliar prancheta, chega de faturar o vagão errado. O sistema de gestão de pátio vê a massa real carregada em vez da estimativa do operador.
Vue 3 + Three.js desktop app for the loading-station operator: live 3D point cloud, per-wagon summary, train list, CSV export, wagon-by-wagon audit. Already in production with our Bahnwagon customer — handed over with full source. Run it locally on the plant PC; no browser-cloud dependency. Vue 3 + Three.js Desktop-App für den Verladestations-Bediener: Live-3D-Punktwolke, Übersicht pro Waggon, Zug-Liste, CSV-Export, Waggon-für-Waggon-Audit. Bereits produktiv beim Bahnwagon-Kunden im Einsatz — übergeben mit vollem Quellcode. Läuft lokal auf dem Anlagen-PC; keine Browser-Cloud-Abhängigkeit. Vue 3 + Three.js desktop app for the loading-station operator: live 3D point cloud, per-wagon summary, train list, CSV export, wagon-by-wagon audit. Already in production with our Bahnwagon customer — handed over with full source. Run it locally on the plant PC; no browser-cloud dependency. Vue 3 + Three.js desktop app for the loading-station operator: live 3D point cloud, per-wagon summary, train list, CSV export, wagon-by-wagon audit. Already in production with our Bahnwagon customer — handed over with full source. Run it locally on the plant PC; no browser-cloud dependency. Vue 3 + Three.js desktop app for the loading-station operator: live 3D point cloud, per-wagon summary, train list, CSV export, wagon-by-wagon audit. Already in production with our Bahnwagon customer — handed over with full source. Run it locally on the plant PC; no browser-cloud dependency. Vue 3 + Three.js desktop app for the loading-station operator: live 3D point cloud, per-wagon summary, train list, CSV export, wagon-by-wagon audit. Already in production with our Bahnwagon customer — handed over with full source. Run it locally on the plant PC; no browser-cloud dependency. Aplicativo desktop em Vue 3 + Three.js para o operador da estação de carga: nuvem de pontos 3D ao vivo, resumo por vagão, lista do trem, exportação CSV e auditoria vagão a vagão. Já em produção com nosso cliente Bahnwagon — entregue com código-fonte completo. Roda localmente no PC da planta; sem dependência de nuvem no navegador.
Every loading station has its own wagon class, its own track geometry, its own existing control system. A generic detector solves the generic case; your loading position is not the generic case. Jede Verladestation hat ihre eigene Waggon-Klasse, ihre eigene Gleisgeometrie, ihre eigene bestehende Steuerung. Ein generischer Detektor löst den generischen Fall; Ihre Verladeposition ist nicht der generische Fall. Every loading station has its own wagon class, its own track geometry, its own existing control system. A generic detector solves the generic case; your loading position is not the generic case. Every loading station has its own wagon class, its own track geometry, its own existing control system. A generic detector solves the generic case; your loading position is not the generic case. Every loading station has its own wagon class, its own track geometry, its own existing control system. A generic detector solves the generic case; your loading position is not the generic case. Every loading station has its own wagon class, its own track geometry, its own existing control system. A generic detector solves the generic case; your loading position is not the generic case. Cada estação de carregamento tem sua própria classe de vagão, sua própria geometria de trilho, seu próprio sistema de controle existente. Um detector genérico resolve o caso genérico; sua posição de carregamento não é o caso genérico.
Every wagon class is different — six lids, eight lids, end-loaders, top-loaders, with or without a leading Roboterwagen. We calibrate the geometric pipeline on your wagons at your loading position, and we re-calibrate when the rail operator rotates the fleet. Calibration constants live in config.yaml — no retraining, no GPU. Jede Waggon-Klasse ist anders — sechs Deckel, acht Deckel, Stirn-Lader, Oben-Lader, mit oder ohne vorausfahrenden Roboterwagen. Wir kalibrieren die geometrische Pipeline auf Ihren Waggons an Ihrer Verladeposition und re-kalibrieren, wenn der Bahnbetreiber die Flotte tauscht. Kalibrierungs-Konstanten liegen in config.yaml — kein Retraining, keine GPU. Every wagon class is different — six lids, eight lids, end-loaders, top-loaders, with or without a leading Roboterwagen. We calibrate the geometric pipeline on your wagons at your loading position, and we re-calibrate when the rail operator rotates the fleet. Calibration constants live in config.yaml — no retraining, no GPU. Every wagon class is different — six lids, eight lids, end-loaders, top-loaders, with or without a leading Roboterwagen. We calibrate the geometric pipeline on your wagons at your loading position, and we re-calibrate when the rail operator rotates the fleet. Calibration constants live in config.yaml — no retraining, no GPU. Every wagon class is different — six lids, eight lids, end-loaders, top-loaders, with or without a leading Roboterwagen. We calibrate the geometric pipeline on your wagons at your loading position, and we re-calibrate when the rail operator rotates the fleet. Calibration constants live in config.yaml — no retraining, no GPU. Every wagon class is different — six lids, eight lids, end-loaders, top-loaders, with or without a leading Roboterwagen. We calibrate the geometric pipeline on your wagons at your loading position, and we re-calibrate when the rail operator rotates the fleet. Calibration constants live in config.yaml — no retraining, no GPU. Cada classe de vagão é diferente — seis tampas, oito tampas, carregamento na traseira, carregamento pelo topo, com ou sem vagão-robô de controle líder. Calibramos o pipeline geométrico nos seus vagões na sua posição de carregamento, e recalibramos quando o operador ferroviário troca a frota. As constantes de calibração vivem no config.yaml — sem retreinamento, sem GPU.
The same geometric approach works on rock, salt, scrap and grain — only the lid clustering tolerances change. No ML retraining required when the material switches; the pipeline cares about wagon geometry, not what is inside the lid. This is the property that made the Bahnwagon project portable across plants. Derselbe geometrische Ansatz funktioniert auf Stein, Salz, Schrott und Getreide — nur die Toleranzen im Deckel-Clustering ändern sich. Kein ML-Retraining bei Material-Wechsel; die Pipeline kümmert sich um Waggon-Geometrie, nicht um den Inhalt des Deckels. Genau diese Eigenschaft macht das Bahnwagon-Projekt anlagen-übergreifend portabel. The same geometric approach works on rock, salt, scrap and grain — only the lid clustering tolerances change. No ML retraining required when the material switches; the pipeline cares about wagon geometry, not what is inside the lid. This is the property that made the Bahnwagon project portable across plants. The same geometric approach works on rock, salt, scrap and grain — only the lid clustering tolerances change. No ML retraining required when the material switches; the pipeline cares about wagon geometry, not what is inside the lid. This is the property that made the Bahnwagon project portable across plants. The same geometric approach works on rock, salt, scrap and grain — only the lid clustering tolerances change. No ML retraining required when the material switches; the pipeline cares about wagon geometry, not what is inside the lid. This is the property that made the Bahnwagon project portable across plants. The same geometric approach works on rock, salt, scrap and grain — only the lid clustering tolerances change. No ML retraining required when the material switches; the pipeline cares about wagon geometry, not what is inside the lid. This is the property that made the Bahnwagon project portable across plants. A mesma abordagem geométrica funciona com rocha, sal, sucata e grãos — só mudam as tolerâncias de clusterização das tampas. Sem retreinamento de ML quando muda o material; o pipeline se importa com a geometria do vagão, não com o que está dentro da tampa. É essa propriedade que tornou o projeto Bahnwagon portável entre plantas.
The geometric stages are stateless. State lives only in the tracker — the component that assigns wagon sequence numbers and detects the leading Roboterwagen. Clean boundary, easy to integrate with your existing yard-management state, easy to swap when the loading control software changes. Die geometrischen Stufen sind zustandslos. Zustand liegt nur im Tracker — der Komponente, die Waggon-Sequenznummern vergibt und den vorausfahrenden Roboterwagen erkennt. Saubere Grenze, einfache Integration in Ihren bestehenden Hof-Management-Zustand, einfach tauschbar, wenn sich die Verladesteuerungs-Software ändert. The geometric stages are stateless. State lives only in the tracker — the component that assigns wagon sequence numbers and detects the leading Roboterwagen. Clean boundary, easy to integrate with your existing yard-management state, easy to swap when the loading control software changes. The geometric stages are stateless. State lives only in the tracker — the component that assigns wagon sequence numbers and detects the leading Roboterwagen. Clean boundary, easy to integrate with your existing yard-management state, easy to swap when the loading control software changes. The geometric stages are stateless. State lives only in the tracker — the component that assigns wagon sequence numbers and detects the leading Roboterwagen. Clean boundary, easy to integrate with your existing yard-management state, easy to swap when the loading control software changes. The geometric stages are stateless. State lives only in the tracker — the component that assigns wagon sequence numbers and detects the leading Roboterwagen. Clean boundary, easy to integrate with your existing yard-management state, easy to swap when the loading control software changes. Os estágios geométricos são sem estado. O estado vive apenas no rastreador — o componente que atribui números de sequência e detecta o vagão-robô de controle líder. Fronteira limpa, fácil de integrar com o seu estado existente de gestão de pátio, fácil de trocar quando muda o software de controle de carga.
You own the Python prototype, the C++/C# port, the calibration files and the Electron operator UI at handover. We document the system, train your team and walk away clean. No black box, no monthly per-wagon licence, no service contract you cannot exit. See our FAQs on IP and engagement model for the standard terms. Sie besitzen den Python-Prototyp, die C++/C#-Portierung, die Kalibrierungs-Dateien und die Electron-Bediener-Oberfläche nach der Übergabe. Wir dokumentieren das System, schulen Ihr Team und gehen sauber raus. Keine Black Box, keine monatliche Pro-Waggon-Lizenz, kein Servicevertrag, aus dem Sie nicht rauskommen. Standard-Bedingungen siehe unsere FAQs zu IP und Zusammenarbeits-Modell. You own the Python prototype, the C++/C# port, the calibration files and the Electron operator UI at handover. We document the system, train your team and walk away clean. No black box, no monthly per-wagon licence, no service contract you cannot exit. See our FAQs on IP and engagement model for the standard terms. You own the Python prototype, the C++/C# port, the calibration files and the Electron operator UI at handover. We document the system, train your team and walk away clean. No black box, no monthly per-wagon licence, no service contract you cannot exit. See our FAQs on IP and engagement model for the standard terms. You own the Python prototype, the C++/C# port, the calibration files and the Electron operator UI at handover. We document the system, train your team and walk away clean. No black box, no monthly per-wagon licence, no service contract you cannot exit. See our FAQs on IP and engagement model for the standard terms. You own the Python prototype, the C++/C# port, the calibration files and the Electron operator UI at handover. We document the system, train your team and walk away clean. No black box, no monthly per-wagon licence, no service contract you cannot exit. See our FAQs on IP and engagement model for the standard terms. Você recebe a propriedade do protótipo em Python, do porte C++/C#, dos arquivos de calibração e da interface do operador em Electron na entrega. Documentamos o sistema, treinamos sua equipe e saímos limpos. Sem caixa-preta, sem licença mensal por vagão, sem contrato de serviço do qual você não possa sair. Veja nosso FAQ sobre IP e modelo de contrato para os termos padrão.
The engagement-model questions we hear from every loading-station customer considering a custom perception build. Need something more specific to your wagon class? Ask us. Die Fragen zum Zusammenarbeits-Modell, die wir von jedem Verladestations-Kunden hören, der einen Custom-Perception-Build erwägt. Brauchen Sie etwas Spezifischeres zu Ihrer Waggon-Klasse? Sprechen Sie uns an. The engagement-model questions we hear from every loading-station customer considering a custom perception build. Need something more specific to your wagon class? Ask us. The engagement-model questions we hear from every loading-station customer considering a custom perception build. Need something more specific to your wagon class? Ask us. The engagement-model questions we hear from every loading-station customer considering a custom perception build. Need something more specific to your wagon class? Ask us. The engagement-model questions we hear from every loading-station customer considering a custom perception build. Need something more specific to your wagon class? Ask us. As perguntas de modelo de contrato que ouvimos de cada cliente de estação de carregamento considerando um build customizado de percepção. Precisa de algo mais específico para a sua classe de vagão? Pergunte.
Sensor setup, sample scans, your wagon class, your loading-control interface — anything you have. We come back within two business days with an honest first assessment and a fixed-price scope for the Discovery workshop. Sensor-Setup, Beispiel-Scans, Ihre Waggon-Klasse, Ihre Verladesteuerungs-Schnittstelle — alles, was Sie haben. Wir kommen innerhalb von zwei Werktagen mit einer ehrlichen ersten Einschätzung und einem Festpreis-Angebot für den Discovery-Workshop zurück. Sensor setup, sample scans, your wagon class, your loading-control interface — anything you have. We come back within two business days with an honest first assessment and a fixed-price scope for the Discovery workshop. Sensor setup, sample scans, your wagon class, your loading-control interface — anything you have. We come back within two business days with an honest first assessment and a fixed-price scope for the Discovery workshop. Sensor setup, sample scans, your wagon class, your loading-control interface — anything you have. We come back within two business days with an honest first assessment and a fixed-price scope for the Discovery workshop. Sensor setup, sample scans, your wagon class, your loading-control interface — anything you have. We come back within two business days with an honest first assessment and a fixed-price scope for the Discovery workshop. Configuração de sensores, varreduras de amostra, sua classe de vagão, sua interface de controle de carga — qualquer coisa que você tenha. Respondemos em até dois dias úteis com uma avaliação inicial honesta e um escopo de preço fechado para o workshop de descoberta.