How can I get simulator window from Isaac Sim sample

Hi,

My environment is DGX Station, OS 4.5.0, Isaac SDK 2020.1, SSH remote connection.
The below message is shown when I run a sample sim by docker.
And I can not get a simulator window.

Set current directory to /src/workspace/isaac_sim/builds
Found path: /src/workspace/isaac_sim/builds/sample.x86_64
Mono path[0] = ‘/src/workspace/isaac_sim/builds/sample_Data/Managed’
Mono config path = ‘/src/workspace/isaac_sim/builds/sample_Data/MonoBleedingEdge/etc’
Preloaded ‘libSubstance.Engine.so’
Preloaded ‘libsubstance_sse2_blend.so’
Display 0 ‘LCD-MF273ED 27"’: 1920x1080 (primary device).
Desktop is 1920 x 1080 @ 60 Hz
[Vulkan init] extensions: count=16
[Vulkan init] extensions: name=VK_KHR_device_group_creation, enabled=0
[Vulkan init] extensions: name=VK_KHR_display, enabled=1
[Vulkan init] extensions: name=VK_KHR_external_fence_capabilities, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_memory_capabilities, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_semaphore_capabilities, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_display_properties2, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_physical_device_properties2, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_surface_capabilities2, enabled=0
[Vulkan init] extensions: name=VK_KHR_surface, enabled=1
[Vulkan init] extensions: name=VK_KHR_xcb_surface, enabled=0
[Vulkan init] extensions: name=VK_KHR_xlib_surface, enabled=1
[Vulkan init] extensions: name=VK_EXT_acquire_xlib_display, enabled=0
[Vulkan init] extensions: name=VK_EXT_debug_report, enabled=0
[Vulkan init] extensions: name=VK_EXT_debug_utils, enabled=0
[Vulkan init] extensions: name=VK_EXT_direct_mode_display, enabled=0
[Vulkan init] extensions: name=VK_EXT_display_surface_counter, enabled=0
Vulkan detection: 2
Initialize engine version: 2019.3.0f6 (27ab2135bccf)
[Subsystems] Discovering subsystems at path /src/workspace/isaac_sim/builds/sample_Data/UnitySubsystems
GfxDevice: creating device client; threaded=1
[Vulkan init] extensions: count=16
[Vulkan init] extensions: name=VK_KHR_device_group_creation, enabled=0
[Vulkan init] extensions: name=VK_KHR_display, enabled=1
[Vulkan init] extensions: name=VK_KHR_external_fence_capabilities, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_memory_capabilities, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_semaphore_capabilities, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_display_properties2, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_physical_device_properties2, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_surface_capabilities2, enabled=0
[Vulkan init] extensions: name=VK_KHR_surface, enabled=1
[Vulkan init] extensions: name=VK_KHR_xcb_surface, enabled=0
[Vulkan init] extensions: name=VK_KHR_xlib_surface, enabled=1
[Vulkan init] extensions: name=VK_EXT_acquire_xlib_display, enabled=0
[Vulkan init] extensions: name=VK_EXT_debug_report, enabled=0
[Vulkan init] extensions: name=VK_EXT_debug_utils, enabled=0
[Vulkan init] extensions: name=VK_EXT_direct_mode_display, enabled=0
[Vulkan init] extensions: name=VK_EXT_display_surface_counter, enabled=0
[Vulkan init] extensions: count=67
[Vulkan init] extensions: name=VK_KHR_8bit_storage, enabled=0
[Vulkan init] extensions: name=VK_KHR_16bit_storage, enabled=0
[Vulkan init] extensions: name=VK_KHR_bind_memory2, enabled=0
[Vulkan init] extensions: name=VK_KHR_create_renderpass2, enabled=0
[Vulkan init] extensions: name=VK_KHR_dedicated_allocation, enabled=1
[Vulkan init] extensions: name=VK_KHR_depth_stencil_resolve, enabled=0
[Vulkan init] extensions: name=VK_KHR_descriptor_update_template, enabled=1
[Vulkan init] extensions: name=VK_KHR_device_group, enabled=0
[Vulkan init] extensions: name=VK_KHR_draw_indirect_count, enabled=0
[Vulkan init] extensions: name=VK_KHR_driver_properties, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_fence, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_fence_fd, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_memory, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_memory_fd, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_semaphore, enabled=0
[Vulkan init] extensions: name=VK_KHR_external_semaphore_fd, enabled=0
[Vulkan init] extensions: name=VK_KHR_get_memory_requirements2, enabled=1
[Vulkan init] extensions: name=VK_KHR_image_format_list, enabled=1
[Vulkan init] extensions: name=VK_KHR_maintenance1, enabled=1
[Vulkan init] extensions: name=VK_KHR_maintenance2, enabled=0
[Vulkan init] extensions: name=VK_KHR_maintenance3, enabled=0
[Vulkan init] extensions: name=VK_KHR_multiview, enabled=1
[Vulkan init] extensions: name=VK_KHR_push_descriptor, enabled=0
[Vulkan init] extensions: name=VK_KHR_relaxed_block_layout, enabled=0
[Vulkan init] extensions: name=VK_KHR_sampler_mirror_clamp_to_edge, enabled=1
[Vulkan init] extensions: name=VK_KHR_sampler_ycbcr_conversion, enabled=0
[Vulkan init] extensions: name=VK_KHR_shader_atomic_int64, enabled=0
[Vulkan init] extensions: name=VK_KHR_shader_draw_parameters, enabled=0
[Vulkan init] extensions: name=VK_KHR_shader_float16_int8, enabled=0
[Vulkan init] extensions: name=VK_KHR_shader_float_controls, enabled=0
[Vulkan init] extensions: name=VK_KHR_storage_buffer_storage_class, enabled=0
[Vulkan init] extensions: name=VK_KHR_swapchain, enabled=1
[Vulkan init] extensions: name=VK_KHR_swapchain_mutable_format, enabled=0
[Vulkan init] extensions: name=VK_KHR_variable_pointers, enabled=0
[Vulkan init] extensions: name=VK_KHR_vulkan_memory_model, enabled=0
[Vulkan init] extensions: name=VK_EXT_blend_operation_advanced, enabled=0
[Vulkan init] extensions: name=VK_EXT_conditional_rendering, enabled=0
[Vulkan init] extensions: name=VK_EXT_conservative_rasterization, enabled=0
[Vulkan init] extensions: name=VK_EXT_depth_range_unrestricted, enabled=0
[Vulkan init] extensions: name=VK_EXT_descriptor_indexing, enabled=0
[Vulkan init] extensions: name=VK_EXT_discard_rectangles, enabled=0
[Vulkan init] extensions: name=VK_EXT_display_control, enabled=0
[Vulkan init] extensions: name=VK_EXT_global_priority, enabled=0
[Vulkan init] extensions: name=VK_EXT_inline_uniform_block, enabled=0
[Vulkan init] extensions: name=VK_EXT_post_depth_coverage, enabled=0
[Vulkan init] extensions: name=VK_EXT_sample_locations, enabled=0
[Vulkan init] extensions: name=VK_EXT_sampler_filter_minmax, enabled=0
[Vulkan init] extensions: name=VK_EXT_scalar_block_layout, enabled=0
[Vulkan init] extensions: name=VK_EXT_shader_subgroup_ballot, enabled=0
[Vulkan init] extensions: name=VK_EXT_shader_subgroup_vote, enabled=0
[Vulkan init] extensions: name=VK_EXT_shader_viewport_index_layer, enabled=0
[Vulkan init] extensions: name=VK_EXT_transform_feedback, enabled=0
[Vulkan init] extensions: name=VK_EXT_vertex_attribute_divisor, enabled=0
[Vulkan init] extensions: name=VK_NV_clip_space_w_scaling, enabled=0
[Vulkan init] extensions: name=VK_NV_dedicated_allocation, enabled=0
[Vulkan init] extensions: name=VK_NV_device_diagnostic_checkpoints, enabled=0
[Vulkan init] extensions: name=VK_NV_fill_rectangle, enabled=0
[Vulkan init] extensions: name=VK_NV_fragment_coverage_to_color, enabled=0
[Vulkan init] extensions: name=VK_NV_framebuffer_mixed_samples, enabled=0
[Vulkan init] extensions: name=VK_NV_geometry_shader_passthrough, enabled=0
[Vulkan init] extensions: name=VK_NV_sample_mask_override_coverage, enabled=0
[Vulkan init] extensions: name=VK_NV_shader_subgroup_partitioned, enabled=0
[Vulkan init] extensions: name=VK_NV_viewport_array2, enabled=0
[Vulkan init] extensions: name=VK_NV_viewport_swizzle, enabled=0
[Vulkan init] extensions: name=VK_NVX_device_generated_commands, enabled=0
[Vulkan init] extensions: name=VK_NVX_multiview_per_view_attributes, enabled=0
[Vulkan init] extensions: name=VK_NV_ray_tracing, enabled=0
Vulkan API version 1.1.0 (1.1.95 supported by driver)
Vulkan vendor=[NVIDIA] id=[10de]
Vulkan renderer=[Tesla V100-DGXS-32GB] id=[1db7]
Vulkan device type 2
Vulkan driverversion=[0x68a60000] uint=[1755709440]
Vulkan PSO: cache data not found [path=/tmp/NVIDIA/IsaacSim Unity3D/vulkan_pso_cache.bin]
ALSA lib confmisc.c:767:(parse_card) cannot find card ‘0’
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
FMOD failed to initialize the output device.: "Error initializing output device. " (60)
(Filename: Line: 1489)

Forced to initialize FMOD to to the device driver’s system output rate 48000, this may impact performance and/or give inconsistent experiences compared to selected sample rate 48000
(Filename: Line: 1425)

ALSA lib confmisc.c:767:(parse_card) cannot find card ‘0’
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
FMOD failed to initialize the output device.: "Error initializing output device. " (60)
(Filename: Line: 1489)

FMOD failed to initialize any audio devices, running on emulated software output with no sound. Please check your audio drivers and/or hardware for malfunction.
Begin MonoManager ReloadAssembly

    Completed reload, in 0.096 seconds
    requesting resize 1280 x 720
    resizing window to 1280 x 720
    Desktop is 1920 x 1080 @ 60 Hz
    InitializeOrResetSwapChain 1280x720 hdr=0 samples=1
    UnloadTime: 0.616043 ms
    Plugins: Couldn’t open libdl, error: libdl: cannot open shared object file: No such file or directory
    (Filename: Line: 306)

Plugins: Couldn’t open libdl, error: libdl: cannot open shared object file: No such file or directory
(Filename: Line: 306)

Loaded the native library
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-07-22 03:39:21.848 WARN engine/alice/backend/application_json_loader.cpp@174: This application does not have an explicit scheduler configuration. One will be autogenerated to the best of the system’s abilities if possible.
2020-07-22 03:39:21.848 INFO engine/alice/backend/redis_backend.cpp@40: Successfully connected to Redis server.

2020-07-22 03:39:21.848 WARN engine/alice/backend/backend.cpp@201: This application does not have an execution group configuration. One will be autogenerated to the best of the systems abilities if possible.
2020-07-22 03:39:21.848 WARN engine/gems/scheduler/scheduler.cpp@337: No default execution groups specified. Attempting to create scheduler configuration for 40 remaining cores. This may be non optimal for the system and application.
2020-07-22 03:39:21.848 INFO engine/gems/scheduler/scheduler.cpp@290: Scheduler execution groups are:
2020-07-22 03:39:21.848 INFO engine/gems/scheduler/scheduler.cpp@299: BlockerGroup: Cores = [30, 31, 32, 33, 34, 35, 36, 37, 38, 39], Workers = No
2020-07-22 03:39:21.848 INFO engine/gems/scheduler/scheduler.cpp@299: WorkerGroup: Cores = [0, 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], Workers = Yes
2020-07-22 03:39:21.849 DEBUG engine/alice/application.cpp@348: Loaded 44 components: isaac::alice::BufferAllocatorReport, isaac::alice::ChannelMonitor, isaac::alice::CheckJetsonPerformanceModel, isaac::alice::CheckOperatingSystem, isaac::alice::Config, isaac::alice::ConfigBridge, isaac::alice::ConfigLoader, isaac::alice::Failsafe, isaac::alice::FailsafeHeartbeat, isaac::alice::InteractiveMarkersBridge, isaac::alice::JsonToProto, isaac::alice::LifecycleReport, isaac::alice::MessageLedger, isaac::alice::MessagePassingReport, isaac::alice::NodeStatistics, isaac::alice::Pose, isaac::alice::Pose2Comparer, isaac::alice::PoseFromFile, isaac::alice::PoseInitializer, isaac::alice::PoseMessageInjector, isaac::alice::PoseToFile, isaac::alice::PoseToMessage, isaac::alice::PoseTree, isaac::alice::PoseTreeJsonBridge, isaac::alice::PoseTreeRelink, isaac::alice::ProtoToJson, isaac::alice::PyCodelet, isaac::alice::Random, isaac::alice::Recorder, isaac::alice::RecorderBridge, isaac::alice::Replay, isaac::alice::ReplayBridge, isaac::alice::Scheduling, isaac::alice::Sight, isaac::alice::SightChannelStatus, isaac::alice::Subgraph, isaac::alice::Subprocess, isaac::alice::TcpPublisher, isaac::alice::TcpSubscriber, isaac::alice::Throttle, isaac::alice::TimeOffset, isaac::alice::TimeSynchronizer, isaac::alice::UdpPublisher, isaac::alice::UdpSubscriber,
2020-07-22 03:39:21.850 INFO engine/alice/application.cpp@255: Starting application ‘navsim’ (instance UUID: ‘ee35afac-cbcc-11ea-9766-0f655cd87226’) …
2020-07-22 03:39:21.850 DEBUG engine/gems/scheduler/execution_groups.cpp@476: Launching 0 pre-start job(s)
2020-07-22 03:39:21.850 DEBUG engine/gems/scheduler/execution_groups.cpp@485: Replaying 0 pre-start event(s)
2020-07-22 03:39:21.851 DEBUG engine/gems/scheduler/execution_groups.cpp@476: Launching 0 pre-start job(s)
2020-07-22 03:39:21.851 DEBUG engine/gems/scheduler/execution_groups.cpp@485: Replaying 0 pre-start event(s)
2020-07-22 03:39:21.851 INFO engine/alice/backend/asio_backend.cpp@33: Starting ASIO service
2020-07-22 03:39:21.852 WARN engine/alice/components/Codelet.cpp@53: Function deprecated. Set tick_period to the desired tick parameter
2020-07-22 03:39:21.852 WARN engine/alice/backend/codelet_canister.cpp@225: Codelet ‘_check_operating_system/isaac.alice.CheckOperatingSystem’ was not added to scheduler because no tick method is specified.
2020-07-22 03:39:21.852 WARN engine/alice/components/Codelet.cpp@53: Function deprecated. Set tick_period to the desired tick parameter
2020-07-22 03:39:21.852 WARN engine/alice/components/Codelet.cpp@53: Function deprecated. Set tick_period to the desired tick parameter
2020-07-22 03:39:21.853 WARN engine/alice/backend/codelet_canister.cpp@225: Codelet ‘navsim/input’ was not added to scheduler because no tick method is specified.
2020-07-22 03:39:21.853 INFO engine/alice/components/TcpPublisher.cpp@75: Starting TCP publisher on port 55000
2020-07-22 03:39:21.853 INFO engine/alice/components/TcpSubscriber.cpp@140: TCP receiver trying to connect to remote (localhost:55001)…
2020-07-22 03:39:21.853 WARN engine/alice/backend/codelet_canister.cpp@225: Codelet ‘navsim/output’ was not added to scheduler because no tick method is specified.
2020-07-22 03:39:21.853 WARN engine/alice/backend/codelet_canister.cpp@225: Codelet ‘navsim/time_sync’ was not added to scheduler because no tick method is specified.
2020-07-22 03:39:21.853 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
Couldn’t create a Convex Mesh from source mesh “Box01” within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
(Filename: Line: 95)

Couldn’t create a Convex Mesh from source mesh “trashbag” within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
(Filename: Line: 95)

Couldn’t create a Convex Mesh from source mesh “Box02” within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
(Filename: Line: 95)

Couldn’t create a Convex Mesh from source mesh “UnrealEdObject” within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
(Filename: Line: 95)

2020-07-22 03:39:22.353 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
WARNING: Shader Unsupported: ‘Hidden/PostProcessing/FinalPass’ - Pass ‘’ has no vertex shader
WARNING: Shader Unsupported: ‘Hidden/PostProcessing/FinalPass’ - Pass ‘’ has no vertex shader
WARNING: Shader Unsupported: ‘Hidden/PostProcessing/FinalPass’ - Pass ‘’ has no vertex shader
WARNING: Shader Unsupported: ‘Hidden/PostProcessing/Uber’ - Pass ‘’ has no vertex shader
WARNING: Shader Unsupported: ‘Hidden/PostProcessing/Uber’ - Pass ‘’ has no vertex shader
Unloading 5 Unused Serialized files (Serialized files now loaded: 0)
2020-07-22 03:39:22.853 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
Setting up 20 worker threads for Enlighten.
Thread -> id: 7f3200d50700 -> priority: 1
Thread -> id: 7f31c9549700 -> priority: 1
Thread -> id: 7f31c8d48700 -> priority: 1
Thread -> id: 7f31c3fff700 -> priority: 1
Thread -> id: 7f31c37fe700 -> priority: 1
Thread -> id: 7f31c2ffd700 -> priority: 1
Thread -> id: 7f31c27fc700 -> priority: 1
Thread -> id: 7f31c1ffb700 -> priority: 1
Thread -> id: 7f31c17fa700 -> priority: 1
Thread -> id: 7f31c0ff9700 -> priority: 1
Thread -> id: 7f31c07f8700 -> priority: 1
Thread -> id: 7f31bfff7700 -> priority: 1
Thread -> id: 7f31bf7f6700 -> priority: 1
Thread -> id: 7f31beff5700 -> priority: 1
Thread -> id: 7f31be7f4700 -> priority: 1
Thread -> id: 7f31bdff3700 -> priority: 1
Thread -> id: 7f31bd7f2700 -> priority: 1
Thread -> id: 7f31bcff1700 -> priority: 1
Thread -> id: 7f31bc7f0700 -> priority: 1
Thread -> id: 7f31ba3eb700 -> priority: 1
UnloadTime: 6.146958 ms
2020-07-22 03:39:23.353 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
2020-07-22 03:39:23.854 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
2020-07-22 03:39:24.354 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
2020-07-22 03:39:24.854 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
2020-07-22 03:39:25.354 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.
2020-07-22 03:39:25.854 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.

Unloading 6 unused Assets to reduce memory usage. Loaded Objects now: 3781.
Total: 3.027240 ms (FindLiveObjects: 0.512198 ms CreateObjectMapping: 0.218716 ms MarkObjects: 2.167347 ms DeleteObjects: 0.120857 ms)

2020-07-22 03:39:26.354 WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.

WARN engine/alice/components/TcpSubscriber.cpp@165: Failed to connect to remote. Will try again in 0.500000 seconds.

The above message is repeated endlessly.
How can I do to get a simulator window?

Thanks.

Hi hijikata_M,

i’m not sure how it is managed in the docker containers, but on the normal desktop environment you have to start Isaac SDK (for the robot code) and for unity(for the visualization etc.)
Your Message only means that the SDK is started but no tcp-Partner (Unity) is connected to it
seen here: https://docs.nvidia.com/isaac/isaac/doc/simulation/unity3d.html

bob@desktop:~/isaac_sim_unity3d/builds$ ./sample.x86_64 --scene small_warehouse -logFile -

to start a unity windows
and for example

bob@desktop:~/isaac$ bazel run //apps/navsim:navsim_navigate

to start the SDK

Thanks for your response, kurzschlussidi.

I create docker image by https://docs.nvidia.com/isaac/isaac/doc/getting_started.html#creating-an-isaac-sdk-development-image.
I run docker image by below command.

sudo docker run --gpus all --mount source=isaac-sdk-build-cache,target=/root -v pwd:/src/workspace -v /tmp/.X11-unix:/tmp/.X11-unix -p 3000:3000 -e DISPLAY -w /src/workspace --runtime=nvidia --name isaac -it isaacbuild:latest /bin/bash

When I run the navigate app, the navigate app shows “Success” after few mins.
I thought that sample is running. But sample does not display warehouse.
How can I see warehouse?

i hope im not mistaken here, since i have not worked with the docker before…

To my knowledge the docker only contains the SDK. (Right/Green side of the picture)

For the left part, you have to install unity, like it is described there (https://docs.nvidia.com/isaac/isaac/doc/setup.html#isaacsim-unity3d-setup)
Afterwards is should run with the two commands in my first post.

Best of luck :)

I copied IsaacSim Unity3d to docker.
I can see warehouse from docker on my normal desktop.

It’s probably due to the SSH connection or DGX station specific.