In this example shown how to generate shot data for 2d line using Seismic Unix

Survey layout:
200 shots
50m shot interval
60 traces per shot gather
50m receiver interval
total 12000 traces
60[traces_per_cmn_shot_gather]*50[metres_receiver_interval] = 3000m per shot point
sx=source_x=sp_number*sp_interval=[0..199*50]=[0..9950]
gx=receiver_x=sx+cmn_shot_gather_trace_number*50-1475
gx[trace1,sp1]=0*50+0*50-1475=-1475
gx[trace60,sp200]=199*50+59*50-1475=11425
cdp = (1525 + gx + sx) / 50 = [1-458]
cdp[trace1,sp1]=(1525-1475+0)/50=1
cdp[trace1,sp2]=(1525-1425+50)/50=3
...
cdp[trace60,sp200]=(1525+(50*199+59*50-1475)+(50*199))/50=458

main steps are:
1) install Seismic Unix
2) create earth model:
create file: model.sh
#! /bin/sh
datafile=model.data
trimodel xmin=-2 zmin=0 xmax=12.0 zmax=2.0 \
1 xedge=-2,0,2,4,6,8,10,12 \
zedge=0,0,0,0,0,0,0,0 \
sedge=0,0,0,0,0,0,0,0 \
2 xedge=-2,0,2,4,6,8,10,12 \
zedge=0.3,0.32,0.3,0.6,0.2,0.25,0.25,0.25 \
sedge=0,0,0,0,0,0,0,0 \
3 xedge=-2,0,2,4,6,8,10,12 \
zedge=0.8,0.8,1.0,1.3,0.5,0.7,1.0,1.0 \
sedge=0,0,0,0,0,0,0,0 \
4 xedge=-2,0,2,4,6,8,10,12 \
zedge=1.5,1.5,1.6,1.9,1.0,1.2,1.7,1.9 \
sedge=0,0,0,0,0,0,0,0 \
5 xedge=1.9,2.0,2.1 \
zedge=0.4,0.36,0.4 \
sedge=0,0,0 \
6 xedge=1.9,2.0,2.1 \
zedge=0.4,0.44,0.4 \
sedge=0,0,0 \
7 xedge=-2,0,2,4,6,8,10,12 \
zedge=2,2,2,2,2,2,2,2 \
sedge=0,0,0,0,0,0,0,0 \
sfill=1,0.2,0,0,0.44,0,0 \
sfill=1,0.5,0,0,0.15,0,0 \
sfill=1,1.0,0,0,0.12,0,0 \
sfill=1,1.9,0,0,0.10,0,0 \
sfill=2,0.4,0,0,0.10,0,0 \
kedge=1,2,3,4,5,6,7 \
>$datafile
# Create a PS display of the model
spsplot <$datafile >model.ps \
title="Layered Earth Model" \
labelz="Depth (km)" labelx=""\
gedge=0.5 gtri=2.0 \
wbox=6.0 hbox=2.0 &
exit
#=========end of model.sh ============================
in terminal execute following command:
chmod +x model.sh
to make model.sh executable
run model.sh. it will produce model.ps and model.data files. View model.ps using gv or any other post script image viewer to see what's the earth model look like.

3) Simulate data acquisition:
create file acquis.sh
#! /bin/sh
/bin/rm -f tempfile*
nangle=131
fangle=-65
langle=65
nt=251 dt=0.008
datafile=model.data
seisfile=seis.data

#------------------------------------------------
# Shooting the seismic traces...
#------------------------------------------------

i=0
while [ "$i" -ne "200" ]
do

fs=$(echo "" | awk "{print $i * 0.05}")
sx=$(echo "" | awk "{print $i * 50}")
fldr=$(echo "" | awk "{print $i + 1}")

j=0
while [ "$j" -ne "60" ]
do

fg=$(echo "" | awk "{print $i * 0.05 + $j *0.05}")
gx=$(echo "" | awk "{print $i * 50 + $j * 50 -1475}")
offset=$(echo "" | awk "{print $j * 50 -1475}")
tracl=$(echo "" | awk "{print $i * 60 + $j + 1}")
tracf=$(echo "" | awk "{print $j + 1}")
echo "sx=$sx gx=$gx trace_number=$tracl"

k=2
while [ "$k" -ne "7" ]
do

triseis <$datafile xs=-0,9.95 zs=0,0 \
xg=-1.475,11.425 zg=0,0 \
nangle=$nangle fangle=$fangle langle=$langle \
kreflect=$k krecord=1 fpeak=12 lscale=0.5 \
ns=1 fs=$fs ng=1 fg=$fg nt=$nt dt=$dt |
suaddhead nt=$nt |
sushw key=dt,tracl,tracr,fldr,tracf,trid,offset,sx,gx \
a=8000,$tracl,$tracl,$fldr,$tracf,1,$offset,$sx,$g x >> tempfile$k
k=`expr $k + 1`
echo "$i->$j->$k"
done
j=`expr $j + 1`

done
i=`expr $i + 1`

done

#------------------------------------------------
# Adding up the files...
#------------------------------------------------

susum tempfile2 tempfile3 >tempfilea
susum tempfilea tempfile4 >tempfileb
rm -f tempfilea
susum tempfileb tempfile5 >tempfilea
rm -f tempfileb
susum tempfilea tempfile6 >$seisfile
rm -f tempfilea
#------------------------------------------------
# Clean up...
#------------------------------------------------
rm temp*
exit
#===================end of acquis.sh=====================================
in terminal execute following command:
chmod +x su_acquis.sh
to make acquis.sh executable
run acquis.sh to generate shot data in SU format.

4) Convert SeimicUnix data file into segy format:
su_data2segy.sh
#!/bin/sh
segywrite <seis.data tape=seis_data.segy
#===================end of su_data2segy.sh================================
in terminal execute following command:
chmod +x su_data2segy.sh
to make su_data2segy.sh executable
su_data2segy.sh script will produce seis_data.segy data file. Now you can process it in Promax or any other processing system.

I know that it's possible to generate seismic data with the help of some other software. It would be nice if those of you who know how to do it, could post here tutorials similar to this one.
Regards, Aleksey.