-my $auto_window_rs = "full";
-my $datadir = "@webdatadir@";
-my $url_datadir = "@webdataurl@";
-my $logfile = "$jobdir/ctsim.log";
-
-my $result_fname = "$datadir/result-$tmpid.html";
-my $phantom_fname = "$datadir/phantom-$tmpid.sdf";
-my $rs_fname = "$datadir/rs-$tmpid.rs";
-my $ir_fname = "$datadir/ir-$tmpid.sdf";
-my $rs_sdf_fname = "$datadir/rs-$tmpid.sdf";
-my $diff_fname = "$datadir/diff-$tmpid.sdf";
-my $phantom_png = "$datadir/phantom-$tmpid.png";
-my $ir_png = "$datadir/ir-$tmpid.png";
-my $rs_png = "$datadir/rs-$tmpid.png";
-my $diff_png = "$datadir/diff-$tmpid.png";
-
-my $result_url = "$url_datadir/result-$tmpid.html";
-my $phantom_png_url = "$url_datadir/phantom-$tmpid.png";
-my $ir_png_url = "$url_datadir/ir-$tmpid.png";
-my $rs_png_url = "$url_datadir/rs-$tmpid.png";
-my $diff_png_url = "$url_datadir/diff-$tmpid.png";
-
-my $ir_ver = "$bindir/ir";
-my $rs_ver = "$bindir/rs";
-my $gp_ver = "$bindir/gp";
-my $diff_ver = "$bindir/sdf-2";
-$ir_ver = "/opt/lam/bin/mpirun N N $bindir/ir-mpi" if $MPI;
-$rs_ver = "/opt/lam/bin/mpirun N N $bindir/rs-mpi" if $MPI;
-$gp_ver = "/opt/lam/bin/mpirun N N $bindir/gp-mpi" if $MPI;
-
-my $gp_cmd = "$gp_ver $phantom_fname $Phantom_Nx $Phantom_Ny --phantom $Phantom_Name --nsample $Phantom_NSample";
-my $rs_cmd = "$rs_ver $rs_fname $RS_NDet $RS_NRot --phantom $Phantom_Name --nray $RS_NRay --rotangle $RS_RotAngle";
-my $rs_sdf_cmd = "$bindir/rs2sdf $rs_fname $rs_sdf_fname";
-my $ir_cmd = "$ir_ver $rs_fname $ir_fname $IR_Nx $IR_Ny --filter $IR_Filter --filter-param $IR_Filter_Param --interp $IR_Interp --backproj $IR_Backproj";
-my $diff_cmd = "$diff_ver $phantom_fname $ir_fname $diff_fname --comp";
+my $auto_window_pj = "full";
+my $logfile = "$::jobdir/ctsim.log";
+
+my $result_fname = "$::datadir/result-$tmpid.html";
+my $phantom_fname = "$::datadir/phantom-$tmpid.if";
+my $pj_fname = "$::datadir/pj-$tmpid.pj";
+my $ir_fname = "$::datadir/ir-$tmpid.if";
+my $pj_if_fname = "$::datadir/pj-$tmpid.if";
+my $sub_fname = "$::datadir/sub-$tmpid.if";
+my $phantom_png = "$::datadir/phantom-$tmpid.png";
+my $ir_png = "$::datadir/ir-$tmpid.png";
+my $pj_png = "$::datadir/pj-$tmpid.png";
+my $sub_png = "$::datadir/sub-$tmpid.png";
+
+my $result_url = "$::url_datadir/result-$tmpid.html";
+my $phantom_png_url = "$::url_datadir/phantom-$tmpid.png";
+my $ir_png_url = "$::url_datadir/ir-$tmpid.png";
+my $pj_png_url = "$::url_datadir/pj-$tmpid.png";
+my $sub_png_url = "$::url_datadir/sub-$tmpid.png";
+
+my $pjrec_ver = "$::bindir/pjrec";
+my $phm2pj_ver = "$::bindir/phm2pj";
+my $phm2if_ver = "$::bindir/phm2if";
+my $diff_ver = "$::bindir/if-2";
+
+$pjrec_ver = "/opt/lam/bin/mpirun N N $::lamrundir/pjrec-lam" if $MPI;
+$phm2pj_ver = "/opt/lam/bin/mpirun N N $::lamrundir/phm2pj-lam" if $MPI;
+$phm2if_ver = "/opt/lam/bin/mpirun N N $::lamrundir/phm2if-lam" if $MPI;
+
+my $gp_cmd = "$phm2if_ver $phantom_fname $Phantom_Nx $Phantom_Ny --phantom $Phantom_Name --nsample $Phantom_NSample";
+my $pj_cmd = "$phm2pj_ver $pj_fname $PJ_NDet $PJ_NRot --phantom $Phantom_Name --nray $PJ_NRay --rotangle $PJ_RotAngle";
+my $pj_if_cmd = "$::bindir/pj2if $pj_fname $pj_if_fname";
+my $pjrec_cmd = "$pjrec_ver $pj_fname $ir_fname $IR_Nx $IR_Ny --filter $IR_Filter --filter-param $IR_Filter_Param --interp $IR_Interp --backproj $IR_Backproj --filter-method $IR_FilterMethod --zeropad $IR_Zeropad";
+my $sub_cmd = "$diff_ver $phantom_fname $ir_fname $sub_fname --sub";
+my $diff_cmd = "$diff_ver $phantom_fname $ir_fname --comp";